请看:http://jsfiddle.net/s6VdW/
HTML:
什么是错误?根据jQuery文档(http://api.jquery.com/after/),这应该是可能的:
.after()也适用于未连接的DOM节点。
并且
该集合可以进一步操作,甚至在插入文档之前。
更新
看起来,在使用.after()之前,我需要先将第一个span附加到DOM。但是替代方案是什么?如果我无法访问DOM,例如因为我在代码中不知道DOM的部分中? http://jsfiddle.net/s6VdW/10/ 我可以创建一个“临时”div,向其中添加元素。然后我返回该div的子元素。演示:http://jsfiddle.net/s6VdW/13/ - 这看起来像是正确的方法吗?
<div id="test"></div>
JS:
var span1 = $("<span/>").text("Hello");
var br = $("<br/>");
var span2 = $("<span/>").text("World!");
span1.after(br).after(span2);
$("#test").append(span1);
期望的结果是:
Hello
World
预期的HTML结果为:
<div>
<span>Hello</span>
<br/>
<span>World</span>
</div>
什么是错误?根据jQuery文档(http://api.jquery.com/after/),这应该是可能的:
.after()也适用于未连接的DOM节点。
并且
该集合可以进一步操作,甚至在插入文档之前。
更新
看起来,在使用.after()之前,我需要先将第一个span附加到DOM。但是替代方案是什么?如果我无法访问DOM,例如因为我在代码中不知道DOM的部分中? http://jsfiddle.net/s6VdW/10/ 我可以创建一个“临时”div,向其中添加元素。然后我返回该div的子元素。演示:http://jsfiddle.net/s6VdW/13/ - 这看起来像是正确的方法吗?
span1.after(br).after(span2).length
返回1
,但应该是3
。也许你应该在jQuery的错误跟踪器中开一个票。 - Frédéric Hamidi