题
我不能看起来想出一个好的方式来做到这一点,但现在看来似乎应该是简单的。我有一件我想要追加div。然后,我有另一个因素,我希望克隆,并推进这一中间div。这里就是我希望能做到:
$("#somediv > ul").after("<div id='xxx'></div>").append($("#someotherdiv").clone());
这似乎是关闭的,但是不存在的。这个问题是,"后面加上"似乎是操作在原来的"#somediv>ul"选择。这种有意义的,但这不是我想要的。我如何可以最有效的选择的中间div我加入"之后",并把我的"#someotherdiv"吗?
解决方案
去周围的其他方法和使用 insertAfter()
.
$("<div id='xxx'></div>")
.append($("#someotherdiv").clone())
.insertAfter("#somediv > ul")
尽量添加产生DOM节点的文件后,才完成你的工作。
一旦节点添加到所显示的文件,浏览器开始监听的任何变化以刷新视图。做所有的工作之前添加节点所显示的文件并提高浏览器的性能。
其他提示
使用新段落():
$("<div id='xxx'></div>").insertAfter("#somediv > ul").append($("#someotherdiv").clone())
我如何可以最有效的选择的中间div我加入"之后",并把我的"#someotherdiv"吗?
@文森特的解决方案可能是最快的方式获得相同的结果。但是如果出于不管什么原因,你需要添加div after()
然后需要选择它,并对其进行操作可以使用
.nextAll( [expr] )
Find all sibling elements after the current element.
Use an optional expression to filter the matched set.
所以你js变为:
$("#somediv > ul")
.after("<div id='xxx'></div>")
.nextAll('#xxx')
.append($("#someotherdiv").clone());
不隶属于 StackOverflow