JQuery:如何删除除第一个包含子字符串之外的所有div元素作为' id'标签?

时间:2017-08-22 06:50:20

标签: javascript jquery html

我有几个div元素,其ID为' name_a_1',' name_a_2',' name_b_3'等等。我想删除除名字之外的所有div,它从&name; a _'使用JQuery还是普通的JS?

我成功尝试通过遵循JQuery访问第一个和最后一个元素,但是如何访问除第一个之外的所有元素?

$('[id^="name_a_"]').first()
$('[id^="name_a_"]').last()

3 个答案:

答案 0 :(得分:5)

您可以使用组合:not():first选择器来定位除第一个之外的所有元素。

$('[id^="name_a_"]:not(:first)').remove()

或,:gt(index)选择器

  

选择匹配集中索引大于索引的所有元素。

$('[id^="name_a_"]:gt(0)').remove()

要检查元素是否具有值,可以使用.filter()

var hasValue = $('[id^="name_a_"]').filter(function(){
    return $(this).val().trim() !== '';
}).length > 0;

答案 1 :(得分:2)

使用Array.prototype.slice获取除第一个之外的所有匹配元素的简单JS示例。



Array.prototype.slice.call(document.querySelectorAll('[id^="name_a_"]'), 1)
    .forEach(elt => elt.parentNode.removeChild(elt))

<ul>
<li id="name_a_1">name_a_1</li>
<li id="name_a_2">name_a_2</li>
<li id="name_a_3">name_a_3</li>
<li id="name_a_4">name_a_4</li>
</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您还可以使用.not排除第一个div:

$('div[id^=name_a]').not(':eq(0)').remove();