2010-08-05 76 views
28

什么是jQuery代替document.createTextNode(' ') js行。什么是jQuery中document.createTextNode('')的等效代码

我想做某事像这样:

JS:divButtons.appendChild(document.createTextNode(' '));

的jQuery:$("#divButtons").append(?????);

+0

DUP:HTTP://stackoverflow.com/questions/268490/jquery-document-createelement-equivalent – 2010-08-05 06:55:37

+7

但它是关于的createElement功能不是一个createTextNode – penguru 2010-08-05 06:57:22

+1

重要提示任何人阅读这个问题,选择答案可能很容易导致XSS漏洞。请考虑选择@ usr的答案,而不是具有XSS漏洞的答案。 – 2014-06-07 18:17:02

回答

47

请注意现有答案。他们展示了如何附加HTML。 HTML不是文本。将文本视为HTML是a)bug和b)危险。

这里是一个健全的解决方案:

$('selector').append(document.createTextNode('text <and> not & html!')) 

这仅对于追加部件使用jQuery。使用createTextNode没有错。 jQuery在其text(str)函数内部使用createTextNode。

6

有jQuery中没有类似createTextNode。你总是可以使用DOM方法,或者围绕它写一个jQuery包装器。您可能能找到的最接近的东西是在创建新元素时,您可以单独指定文本部分。

$('<div>', { 
    text: '<hello world>' 
}); 
6

我知道这是一个老问题,但我一直在寻找同样的事情...

,我所知道的最接近的方法是的.text()方法。

这样就像创建新的TextNode一样安全地转义文本,但它只能用于指定节点的全部内容。

例如

var mynode = jQuery('#node-id'); 
mynode.text('A<B implies B>A'); 
8
var jqTextNode = $(document.createTextNode(' ')); 

创建文本节点的jQuery表示。我不认为有一个可靠的捷径。

相关问题