web-dev-qa-db-de.com

jQuery Text anhängen

Ich möchte einige einfache Daten in einem div anhängen:

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

Im Körper denke ich, dass ich die HTML-Datei gerne platzieren muss.

<div id="test">    

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

</div>

Ich möchte jedoch etwas CSS zum #msg hinzufügen. Zum Beispiel Hintergrundfarbe. Nun, das Problem ist, dass, da #msg div ständig vorhanden ist, die Hintergrundfarbe auch dann angezeigt wird, wenn der Text nicht daran angehängt ist. Ich habe versucht, css wie "display: none" hinzuzufügen, aber in diesem Fall kann ich den angefügten Text nicht sehen Kann ich es so machen, dass #msg div nur dann in #test angezeigt wird, wenn der Text daran angehängt ist ? Vielen Dank.

37
sunjie

Die richtige Methode zum Anhängen von text (Einschränkung beim Anhängen von HTML) wäre:

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

Wenn someText von einer Benutzereingabe oder etwas anderem stammt, wird dies ordnungsgemäß durch HTML-Code ersetzt. Was sollte verhindern, dass JavaScript-Injection, die dritthäufigste Sicherheitslücke im Internet in der Welt .

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

140
Hendy Irawan

Warum nicht verwenden?

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

Flucht wenn nötig.

0
WesternGun