请看一下:http: //jsfiddle.net/s6VdW/
HTML:
<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 Docs ( http://api.jquery.com/after/ ) 它应该是可能的:
.after()
也适用于断开连接的 DOM 节点。
和
即使在将其插入文档之前,也可以进一步操作该集合。
更新
看来,我需要先将第一个跨度附加到 DOM,然后再使用.after()
. 但是有什么选择呢?如果我无法访问 DOM,例如因为我处于代码的 DOM 未知部分?http://jsfiddle.net/s6VdW/10/
更新 2
我可以创建一个“临时” div,将元素附加到其中。然后我返回那个 div 的孩子。演示: http: //jsfiddle.net/s6VdW/13/ - 这看起来像要走的路吗?