Javascript 如何从具有特定ID的列表中删除元素
我有两个列表,我想删除所有Javascript 如何从具有特定ID的列表中删除元素,javascript,jquery,html,Javascript,Jquery,Html,我有两个列表,我想删除所有li标记,除了那些包含输入元素且-all作为其id的li标记。这是我在jQuery中使用选择器可以实现的吗?可能使用not选择器 这就是我目前拥有的:$(“#搜索筛选器列ul li”).remove() 是的,您可以使用,并且: 匹配#search-filter_列中ul中的li元素,该列不包含输入,其id以-all结尾 你在其他地方的评论中说 我还有包含-location-的li元素。我也不想删除这些li元素 您可以有多
li
标记,除了那些包含输入元素且-all
作为其id
的li标记。这是我在jQuery中使用选择器可以实现的吗?可能使用not选择器
这就是我目前拥有的:$(“#搜索筛选器列ul li”).remove()代码>
-
-
-
-
-
-
-
-
-
是的,您可以使用,并且:
匹配#search-filter_列中ul
中的li
元素,该列不包含输入,其id
以-all
结尾
你在其他地方的评论中说
我还有包含-location-的li元素。我也不想删除这些li元素
您可以有多个:not
条件,li:not(this):not(that)
。它们和CSS选择器的其他方面一样。所以你可以用(*=
)这样做:
实例:
$(“#搜索筛选器列ul li:not(:has(输入[id$=-all])):not(:has(输入[id*=-location-]))))))。删除()代码>
类型:
-
-
-
公司:
-
-
-
位置:
-
-
-
您不必搜索元素然后测试它们的内容,您可以测试输入元素中元素,然后使用和以及排除任何不相关的输入元素。然后,您可以使用方法删除任何匹配元素的父元素li
//删除作为没有
//以($=)“all”结尾的id或以“filter location-”开头的id。
$(“#搜索筛选器列ul>li输入:非([id$='-all']):非([id^='filter-location-'])).parent().remove()代码>
-
-
-
-
-
-
-
-
-
您可以使用jQuery的过滤器
功能来过滤掉您不想删除的元素:
$(“#搜索筛选器列ul li”).filter(函数(){
返回$(this.find('input[id$=-all]')。长度;
}).remove()代码>
-
-
-
-
-
-
您尝试按ID选择、获取父项并删除父项。
例:
非常感谢。$=是什么意思?@Michael:这是以选择器结尾的属性。更多信息请参见上面的链接::-)非常感谢。$=是什么意思?@Michael查看我的最新答案。它的意思是“以结尾”,因为您需要的输入元素是id
“以-all
结束。快速提问:刚刚遇到一个问题lol,如果我想删除所有没有筛选器位置和-all作为ID的li元素,该怎么办?我们能给选择器加一个OR吗?@Michael,你能澄清一下吗。id
应该是什么?在您的示例中,我没有看到任何id为且包含筛选器位置的元素。我还有包含-location-
的li元素。我也不想删除这些li元素。现在,当使用上述方法时,它将删除这些元素。
<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" checked="checked">
</li>
<li>
<input id="filter-types-special" name="filter-types-special" type="checkbox" checked="checked">
</li>
</ul>
<ul>
<li>
<input id="filter-company-all" name="filter-company-all" type="checkbox" checked="checked">
</li>
<li>
<input id="filter-company-1" name="filter-company-1" type="checkbox" checked="checked">
</li>
<li>
<input id="filter-company-2" name="filter-company-2" type="checkbox" checked="checked">
</li>
</ul>
<ul>
<li>
<input id="filter-location-1" name="filter-location-1" type="checkbox" checked="checked">
</li>
<li>
<input id="filter-location-2" name="filter-location-2" type="checkbox" checked="checked">
</li>
<li>
<input id="filter-location-3" name="filter-location-3" type="checkbox" checked="checked">
</li>
</ul>
$("#search-filter-column ul li:not(:has(input[id$=-all]))").remove();
$("#search-filter-column ul li:not(:has(input[id$=-all])):not(:has(input[id*=-location-]))").remove();
$('#ID_REMOVE').parent().remove()