it-roy-ru.com

jQuery добавить текст

Я хочу добавить некоторые простые данные в div, например:

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

В теле, я думаю, мне нужно будет разместить как HTML.

<div id="test">    

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

</div>

Однако я хочу добавить немного CSS в #msg. Например, цвет фона. Теперь проблема в том, что, поскольку div #msg присутствует постоянно, я вижу цвет фона, даже если к нему не добавлен текст. Я попытался добавить css like "display: none, но в этом случае я не вижу текст, добавленный к нему . Могу ли я сделать так, чтобы #msg div появлялся внутри #test только тогда, когда к нему добавлен текст ? Спасибо.

37
sunjie

Правильный способ добавления text (ограниченный добавлением HTML) будет следующим:

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

Если someText поступает из пользовательского ввода или чего-либо еще, он будет корректно экранирован HTML. Что должно предотвратить внедрение JavaScript, 3-я самая распространенная уязвимость веб-безопасности в мире .

От https://stackoverflow.com/a/944456/122441

140
Hendy Irawan

Почему бы не использовать

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

Побег, когда это необходимо.

0
WesternGun