3

我想克隆一个 DOM 元素及其所有子元素(包括数据和侦听器),但我希望生成的克隆具有不同的 DOM 类型。

例如我想转换:

<td>
 <p class="pclass">
  Hello
 </p>
 <p class="pclass">
  World!
 </p>
</td>

到包含以下内容的新元素:

<div>
 <p class="pclass">
  Hello
 </p>
 <p class="pclass">
  World!
 </p>
</div>

注意:我已经有了答案,但因为它可能会引起其他人的兴趣,并且答案并不完美但足够,所以我创建了这个主题。

4

1 回答 1

0

下面的 jQuery 脚本将完成这项工作:

var oldElement = $(your selector here);
var newElement = $('<my new HTML tag>').append($(oldElement).contents().clone(true, true));

此脚本保留元素数据和事件侦听器(参见 clone(true, true))。此脚本不保留元素本身的数据和事件侦听器。

注意:有人提出一个补充来保留原始元素数据和事件侦听器可能很有趣。那里提出了一个答案的开始:https ://stackoverflow.com/a/2207117/2227298

于 2013-04-14T11:01:50.463 回答