我不能看起来想出一个好的方式来做到这一点,但现在看来似乎应该是简单的。我有一件我想要追加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());
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top