jQuery替换在替换三个元素时不工作

时间:2011-02-11 17:43:29

标签: jquery html replacewith

我正在尝试用其他三个元素替换单个元素,使用jQuery的replaceWith,但它似乎没有用。

HTML:

<span>first</span>
<span>second</span>
<span>third</span>

JS:

var spans = $("span");
spans.eq(1).replaceWith("<span></span><span></span><span></span>");

这应该是我写的,结果是:

<span>first</span>
<span></span><span></span><span></span>
<span>third</span>

但没有任何改变......有什么想法吗?

编辑:这是一个例子,我没有考虑到实际dom和生成的dom之间的差异(有差异吗?看来是这样......)

var spans = $("<span>first</span><span>second</span><span>third</span>");
spans.eq(1).replaceWith($("<span></span><span></span><span></span>"));

因此可以更准确地描绘我的代码。

2 个答案:

答案 0 :(得分:1)

修改。检查http://jsfiddle.net/z9VDw/3/。在进行此类操作之前,您似乎必须附加断开连接的DOM节点。

答案 1 :(得分:0)

既然我明白你要做什么就行不通。使用片段进行Dom操作在jQuery中不起作用。 (除了设置attributes / css。)replaceWith在下一个元素之前插入值。在这种情况下,<span>third</span>然后再次返回this,这是您this之前的replaceWith。这是<span>second</span>