如果使用append()插入新的DOM節點,是否可以將鏈上下文移動到新元素?從最新追加()調用中獲取元素
此示例代碼說明了主題:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
<script type="text/javascript"><!--
$(function(){
$("<div></div>")
.appendTo("body")
.append("<span>Click me</span>")
.click(function(){
alert("Clicked on <" + this.tagName + ">, <SPAN> expected");
});
});
//--></script>
</head>
<body>
</body>
</html>
此代碼attachs一個onclick處理程序的<div>
,但我想它在新的<span>
。
編輯:澄清
我想我在想直接函數,如add()
或andSelf()
不打破鏈流了這麼多<:-)
編輯:解彙總
對於記錄:似乎沒有原生findAppended()
功能。這些都是一些備選方案:
阿爾特製作流程:
$("<span>Click me</span>")
.appendTo("body")
.wrap("<div></div>")
.click(function(){
alert("Clicked on <" + this.tagName + ">, <SPAN> expected");
});
存儲在一個變量的新元素:
var span = $("<span>Click me</span>")
.click(function(){
alert("Clicked on <" + this.tagName + ">, <SPAN> expected");
});
$("<div></div>")
.appendTo("body")
.append(span);
開始一個新的子鏈:
$("<div></div>")
.appendTo("body")
.append(
$("<span>Click me</span>")
.click(function(){
alert("Clicked on <" + this.tagName + ">, <SPAN> expected");
})
);
找到新的元素創建後:
$("<div></div>")
.appendTo("body")
.append("<span>Click me</span>")
.find("span:last")
.click(function(){
alert("Clicked on <" + this.tagName + ">, <SPAN> expected");
})
.end(); // Not necessary here, used to illustrate how to continue the chain
注:代碼沒有測試。
哈哈,看你做了什麼 - 你已經暴露了5種萬億方式做同樣的事情在jQuery的,哈哈哈哈 – 2010-07-07 08:15:43
@丹赫伯登:你是對的:) – 2010-07-07 08:23:55
做了一些編輯我的答案re:你的說明 – 2010-07-07 18:41:48