如何用jQuery移除多个select元素各自的最后一个option选项?
问题分析与解决方法
嘿,我明白你遇到的问题啦!咱们先拆解下为什么原来的代码只移除了第二个select的最后一个option——因为$(".selBooks option:last")这个选择器的逻辑是:先找出所有.selBooks元素下的option,然后在这一堆option里选最后一个,而不是给每个.selBooks单独找它自己的最后一个option。所以自然只会操作第二个select里的最后那个option啦。
下面给你两种靠谱的解决办法:
方法一:用.each()遍历每个select元素
我们可以先选中所有.selBooks元素,然后逐个遍历它们,对每个select单独移除它的最后一个option:
$(".selBooks").each(function() { // 这里的this指向当前遍历到的select元素 $(this).find("option:last").remove(); });
方法二:用:last-child选择器(更简洁)
:last-child选择器的逻辑是匹配每个父元素下的最后一个子元素,正好贴合我们的需求,直接一行代码就能搞定:
$(".selBooks option:last-child").remove();
这两种方法都能实现「给每个.selBooks类的select元素移除最后一个option」的效果,你可以根据自己的习惯选择其中一种~
内容的提问来源于stack exchange,提问作者Ramkishan Suthar
相关产品推荐
相关产品推荐

