我意识到我可以使用以下内容将元素添加到元素中:
$(...).prepend(myText);
但是,如果myText
是"<span>"
,我实际上希望显示该文本,但.prepend()
会预先添加一个空的span元素。推荐的解决方法是什么?我是否真的需要手动HTML转义文本或者是否有更优雅的东西?
答案 0 :(得分:6)
您可以创建一个textnode并将内容放在那里并prepend
:
$('div').prepend(document.createTextNode("<span>"));
答案 1 :(得分:4)
您可以使用text
功能代替prepend
,只需将原始文本添加到新文本的末尾即可:
$("#elementID").text("<span>" + $("#elementID").text());
答案 2 :(得分:1)
HTML实体是可以的:
$(...).prepend('<span>');
您可以使用http://debuggable.com/posts/encode-html-entities-with-jquery:480f4dd6-13cc-4ce9-8071-4710cbdd56cb
处的提示自动化实体$(...).prepend($('<div/>').text('<span>').html());
如果您还想在Javascript中创建PHP的函数 htmlentities ,您可以使用PHP-JS项目中提供的代码:http://phpjs.org/functions/htmlentities:425
或者您可以通过将上一个提示包装在函数中来简化:
function htmlentities(string) {
return $('<div/>').text(string).html();
}
在这两种情况下,您都可以使用htmlentities函数:
$(...).prepend(htmlentities('<span>'));
答案 3 :(得分:0)
您可以实现HTML编码(和解码)功能,例如此接受的答案:HTML-encoding lost when attribute read from input field
然后执行:
$(...).prepend(htmlEncode(myText));