克隆节点只有一个级别

时间:2017-12-04 12:54:54

标签: javascript dom clonenode

我想克隆一个只有1级孩子的Node,所以没有孩子的孩子。

<div data-a>
 <div> data-a1>
  <div data-a11>
   <p> fdsafdsafds</p>
  </div>
 </div>
</div>

如果我将最后一个级别作为目标

target.parentNode.parentNode.cloneNode(true)将克隆所有级别,我希望克隆数据-a,包括data-a1但data-a1没有子级。

可以删除/添加克隆与否的子项,基于深度级别或其属性(仅使用具有或不具有指定属性的子项克隆父级)?

我基于属性,如果我将有更多深度级别的东西,而不是使用递归的parentNode.parentNode。

1 个答案:

答案 0 :(得分:1)

只是尝试删除第一个innerHTML

children
var dupeNode = target.parentNode.parentNode.cloneNode(true);
dupeNode.children[0].innerHTML = "";

<强>演示

var target = document.querySelector( "p" );
var dupeNode = target.parentNode.parentNode.parentNode.cloneNode(true);
dupeNode.children[0].innerHTML = "";
//console.log(dupeNode.outerHTML);
document.querySelector( "#container" ).appendChild( dupeNode );
<div id="container">
  <div data-a=""> data-a level text to be cloned
    <div data-a1="">
      <div data-a11="">
        <p> fdsafdsafds</p>
      </div>
    </div>
  </div>
</div>