web-dev-qa-db-fra.com

jQuery ajouter du texte

Je veux ajouter quelques données simples dans une div comme:

$('#msg').append('Some text');

Dans le corps, je pense que je devrai placer le HTML comme.

<div id="test">    

<div id="msg"></div>  //show text inside it.

</div>

Cependant, je souhaite ajouter des CSS au #msg. Par exemple, couleur de fond. Maintenant, le problème est que, puisque le #msg div est présent tout le temps, je vois la couleur d’arrière-plan même si le texte n’y est pas ajouté. J'ai essayé d'ajouter des css comme "display: none, mais dans ce cas, je ne vois pas le texte qui y est ajouté . Puis-je le faire pour que le #msg div apparaisse dans le #test uniquement lorsque le texte lui est ajouté ? Merci.

37
sunjie

La bonne façon d’ajouter text (par opposition à l’ajout de HTML) serait la suivante:

var someText = "Hello, World!";
$('#msg').append(document.createTextNode(someText));

Si someText provient d'une entrée utilisateur ou de quoi que ce soit d'autre, elle sera correctement échappée au format HTML. Ce qui devrait empêcher l’injection de JavaScript, 3ème vulnérabilité de sécurité Web la plus répandue dans le monde .

De https://stackoverflow.com/a/944456/122441

140
Hendy Irawan

Pourquoi ne pas utiliser

$('#msg').html('A styled <span style="background: yellow">paragraph</span>');
$('#msg').show();

Évadez-vous en cas de besoin.

0
WesternGun