我有这个HTML
<div class="control">
<label class="">Label Here</label>
<input type="text">
<div class="ui-resizable"></div>
<div class="ui-resizable-handle"></div>
<div class="ui-resizable-handle ui-resizable-se"></div>
<div style="display: inline;" class="delete"><span class="ui-icon ui-icon-closethick">close</span> </div>
<div style="display: inline;" class="properties txtbox"><span class="ui-icon ui-icon-wrench">Properties</span></div>
</div>
如何使用jQuery从此HTML中删除第二个第三个和第四个Div。
答案 0 :(得分:12)
您正在寻找:nth-child
:http://api.jquery.com/nth-child-selector/
它的工作原理如下:
$('.control div:nth-child(2), .control div:nth-child(3), .control div:nth-child(4)').remove();
请注意,:nth-child
使用基于一个的索引,因此第一个元素的索引为1。
更新:在回答这个问题时,OP发表了评论
如果我不知道在输入字段出现后会发生多少div 任何方式CUT或SLICE所有div或之后发生的任何元素 Control DIV的第二个孩子......
答案是肯定的,为此您需要:gt:
选择器:http://api.jquery.com/gt-selector/
$('.control div:gt(1)').remove()
与:nth-child
相反,:gt
使用从零开始的索引,因此第一个元素的索引为0。
答案 1 :(得分:8)
尝试:
$('.control').find("div").slice(1, 4).remove();
答案 2 :(得分:6)
答案 3 :(得分:0)
如果你的意思是那些特定的:
$(".ui-resizable-handle, .delete").remove();
如果你指的是2-4位的div,无论是什么标记,nth-child()
个答案之一都可以。
答案 4 :(得分:-1)
你可以这样做
$('.control div:nth-child(2)').remove();
$('.control div:nth-child(3)').remove();
$('.control div:nth-child(4)').remove();
或者你也可以这样做
$('.control div:nth-child(1)').siblings().remove();