我有几个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()
答案 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;
答案 2 :(得分:1)
您还可以使用.not
排除第一个div:
$('div[id^=name_a]').not(':eq(0)').remove();