我想在下面给出的场景中在父div的第二个子节点之后添加一个新元素(div)。
<div id="parent"><!--Parent Div -->
<div><!--Child 1st-->
<div> foo </div>
<div> foo1 <div>
<div> foo2 </div>
</div>
<!--Want to insert in here-->
<div>
我尝试使用nth-child(2)
使用.after
访问带有id的父级,但创建的新元素会插入<div>foo</div>
我无法找到解决方案请帮忙。
答案 0 :(得分:1)
仅使用#parent
选择#parent > div
的直接子div,因为#parent div
在这里过于通用,它将获得所有多级子div是#parent
,像这样:
请注意,您在
<div> foo1 <div>
处使用开头的div标签来关闭div,而不是关闭标记</div>
<强> jsFiddle 强>
$('<div class="new">Newly inserted</div>').insertAfter('#parent > div:first-child');
#parent{outline:1px dashed red; padding:10px;}
#parent > div:first-child{outline:1px dotted blue; margin:5px; padding:5px;}
.new{ font-weight:bold; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="parent">
<!--Parent Div -->
<div>
<!--Child 1st-->
<div>foo</div>
<div>foo1</div>
<div>foo2</div>
</div>
<!--Want to insert in here-->
<div>something else</div>
<div>test div</div>
<div>
答案 1 :(得分:0)
假设parent
引用父元素而element
是您要插入的元素:
secondChildren = null;
if(parent.children.length > 1){
secondChildren = parent.children[1];
}
parent.insertBefore(element, secondChildren);