使用以下html
<div id="duo">batman</div>
以下两条jQuery线之间的区别是什么?
$('#duo').append(' and robin');
$('#duo').append(document.createTextNode(' and robin'));
他们都生产
<div id="duo">batman and robin</div>
第一个html和第二个只是一个字符串吗?有关系吗?这有什么影响,差异意味着什么?
修改
如果引号内的文字是' and <em>robin</em>'
怎么办?似乎前一个语句产生强调文本,而后者实际上在页面上呈现可见<em>
标记。
答案 0 :(得分:1)
没有区别。在第一种情况下,jQuery只是为你处理额外的工作。
答案 1 :(得分:1)
结果是一样的,唯一的区别是jQuery在第一行创建了文本节点。
如果使用DOM方法查看结果(因为jQuery使用元素而不是节点),您会看到创建的文本节点:
$('#duo').append(' and robin');
$('#duo').append(document.createTextNode(' and robin'));
var c = document.getElementById('duo').childNodes;
for (var i = 0; i < c.length; i++) {
console.log(c[i]);
}
输出:
<TextNode textContent="batman">
<TextNode textContent=" and robin">
<TextNode textContent=" and robin">