如果使用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