在我今天早些時候給出的答案中,一位名爲帕特里克的用戶指出了一個錯誤後,發生了這個問題。爲什麼追加在這裏工作,但添加不?
鑑於下面的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