是否可以将一个DOM元素转换为另一个?或者从中复制所有属性

Is it possible transform one DOM element to another? Or copy all attributes from it?

本文关键字:或者 另一个 属性 复制 转换 元素 DOM 一个 是否      更新时间:2023-11-28

是否可以将一个DOM元素转换为另一个?通过jQuery,甚至通过JavaScript。

我只是想举个例子:获取包含所有类、属性和属性的table>thead>tr>th,并将其放入table>body中,如tr>td.

或者可能是另一种方式?

您有几个选项。

  • 您可以使用jQuery的clone(),它将复制DOM节点上/中的所有内容。然后使用append()将克隆附加到您希望它移动到的任何元素。然后只删除原始节点。

  • 如果您只想要DOM节点的属性(类、id等),那么您可以使用所有DOM节点上存在的attributes数组。您必须循环遍历每个属性,然后在新元素上单独设置它。我还没有找到一个简单的方法来复制所有内容。在香草Javascript中,它看起来像这样:

    var originalELement = document.getElementById('original-element-id');
    var newElement = document.createElement('div');
    for (var i = 0; i < originalElement.attributes.length; i++) {
        var attr = originalElement.attributes.item(i);
        newElement.setAttribute(attr.nodeName, attr.nodeValue);
    }
    
执行element1时,

append(element2)element2将在element1内移动。append或appendChild。奇怪但真实。append实际上意味着"剪切"