You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery移除列表中除含特定ID输入框外的li元素

解决方案:用jQuery保留指定li并移除其他元素

当然可以用jQuery实现你的需求,而且完全可以借助:not选择器来完成,下面给你两种清晰可行的方案:

方案一:结合:not与:has选择器直接移除不符合条件的li

你可以通过:not排除掉包含目标input的li,只移除那些不满足条件的元素,代码如下:

$("#search-filter-column ul li:not(:has(input[id$='-all']))").remove();

代码解释:

  • input[id$='-all']:使用属性结尾匹配选择器$=,选中所有ID以-all结尾的input元素
  • :has(input[id$='-all']):选中包含上述input的父级li元素(也就是你想要保留的li)
  • :not(...):排除掉上面选中的保留项,剩下的就是需要移除的li,最后调用.remove()完成删除

方案二:先选中要保留的li,再移除其兄弟元素

这种方式更直观,先定位到你需要保留的li,再移除它的所有兄弟li元素:

$("#search-filter-column ul li:has(input[id$='-all'])").siblings().remove();

这个逻辑是:先找到包含ID后缀为-all的input的li,然后移除它的所有同级li元素,最终只保留目标li。

针对你的HTML示例验证

以你给出的HTML结构为例:

<ul>
  <li>
    <input id="filter-types-all" name="filter-types-all" type="checkbox" checked="checked">
  </li>
  <li>
    <input id="filter-types-suv" name="filter-types-suv" type="checkbox">
  </li>
</ul>

使用上述任意一种代码后,第二个li(包含filter-types-suv的input)会被移除,第一个li会被保留,完全符合你的需求。

小提示:如果页面中有多个ul需要处理,建议给目标ul添加专属的class或ID,让选择器更精准,避免误操作其他列表。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:06:14