1

我正在尝试使用 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>"));

所以对我的代码有更准确的描述。

4

2 回答 2

1

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

于 2011-02-11T17:56:17.463 回答
0

现在我看到你正在尝试做的事情是行不通的。带有片段的 Dom 操作在 jQuery 中不起作用。(除了设置属性/css。)replaceWith在下一个元素之前插入值。在这种情况下<span>third</span>,然后this再次返回,这就是this您调用replaceWith. 哪个是<span>second</span>

于 2011-02-11T18:04:05.043 回答