在我今天早些时候给出的答案中,一位名为帕特里克的用户指出了一个错误后,发生了这个问题。为什么追加在这里工作,但添加不?
鉴于下面的HTML:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script type="text/javascript">
$(function(){
$('#div1').add('<p>new text from add</p>');
$('#div1').append('<p>new text from append</p>');
});
</script>
</head>
<body>
<div id="div1">
original text</div>
</body>
</html>
和jQuery的API文档:
.append(内容) 内容的元件,HTML字符串,或jQuery对象在末尾插入匹配元素集合中的每个元素。
.add(html) html要添加到匹配元素集合的HTML片段。
它似乎我应该看到被添加到div双方的文本块,但是只使用实际上添加追加添加的一个,所以页面看起来像:
原文
从追加的新文本
任何人都可以向我解释为什么这是?
比我的回答更好:) – 2010-07-22 21:09:09
那么在你的例子中,我最终会得到原始的div,并添加了新的段落的副本,这是正确的吗? – heisenberg 2010-07-22 21:29:16
@kekekela - 更正,如果'.appendTo(选择器)'的选择器匹配多个元素,被附加的其他元素被克隆,这里是一个例子:http://jsfiddle.net/nick_craver/AdX5A/所以第一个原来,第二个是这个集合的克隆。 – 2010-07-22 21:40:49