我有以下结构:
<div class="parent">
<div id="child1">Content here</div>
<div class="child2">Content here</div>
</div>
在onload上,我想要包含一个“持有者”div,它包含所有父母的孩子,如下所示:
<div class="parent">
<div id="holder">
<div id="child1">Content here</div>
<div class="child2">Content here</div>
</div>
</div>
只知道“child1”id,如何在自己和兄弟姐妹周围添加一个持有者div?
考虑
思想?
答案 0 :(得分:27)
因为这必须是JavaScript(而不是jQuery),你只能通过id识别child1,你可以像这样粗略地做一些事情:
var child1 = document.getElementById("child1"),
parent = child1.parentNode,
contents = parent.innerHTML ;
parent.innerHTML = '<div id="holder">' + contents + '</div>';
希望这会有所帮助......
答案 1 :(得分:2)
他说没有jQuery,这听起来像是家庭作业,但是:
var el = document.getElementById('child1');
var parent = el.parentNode;
parent.innerHTML = '<div id="holder">' + parent.innerHTML + '</div>';
答案 2 :(得分:0)
我写了一个小片段,以遍历DOM来查找第一个匹配的parentNode。
希望这对某人有帮助。
(/¯◡‿◡)⊃━☆゚。 * ・,
function getFirstParentMatch(element, selector) {
if (!element) {return element};
element.matches(selector) || (element = (element.nodeName.toLowerCase() === 'html' ? false : getFirstParent(element.parentNode, selector)));
return element;
}