我正在尝试用其他三个元素替换单个元素,使用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>"));
因此可以更准确地描绘我的代码。
答案 0 :(得分:1)
修改。检查http://jsfiddle.net/z9VDw/3/。在进行此类操作之前,您似乎必须附加断开连接的DOM节点。
答案 1 :(得分:0)
既然我明白你要做什么就行不通。使用片段进行Dom操作在jQuery中不起作用。 (除了设置attributes / css。)replaceWith
在下一个元素之前插入值。在这种情况下,<span>third</span>
然后再次返回this
,这是您this
之前的replaceWith
。这是<span>second</span>