首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$.append()和$.append(document.createTextNode())的区别

$.append()和$.append(document.createTextNode())的区别
EN

Stack Overflow用户
提问于 2014-10-12 22:09:49
回答 2查看 101关注 0票数 2

使用以下html

代码语言:javascript
复制
<div id="duo">batman</div>

下面两行jQuery的区别是什么?

代码语言:javascript
复制
$('#duo').append(' and robin');

$('#duo').append(document.createTextNode(' and robin'));

他们都生产

代码语言:javascript
复制
<div id="duo">batman and robin</div>

第一个html和第二个仅仅是一个字符串吗?有关系吗?这意味着什么?区别是什么?

编辑

如果引号中的文本是' and <em>robin</em>'呢?前一条语句似乎产生强调的文本,而后者实际上在页面上呈现可见的<em>标记。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-12 22:48:02

结果是相同的,唯一的区别是jQuery在第一行中创建文本节点。

如果使用DOM方法查看结果(因为jQuery使用的是元素,而不是节点),则可以看到创建的文本节点:

代码语言:javascript
复制
$('#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]);
}

输出:

代码语言:javascript
复制
<TextNode textContent="batman">
<TextNode textContent=" and robin">
<TextNode textContent=" and robin">

小提琴:http://jsfiddle.net/Guffa/tgqz37m5/

票数 2
EN

Stack Overflow用户

发布于 2014-10-12 22:13:18

没什么区别。在第一种情况下,jQuery只是为您处理额外的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26330510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档