找到具有特定标题的 li 并删除其余的 li
Posted
技术标签:
【中文标题】找到具有特定标题的 li 并删除其余的 li【英文标题】:finding a li with specific title and removing the rest li 【发布时间】:2012-01-26 17:33:40 【问题描述】:我有一个列表,我需要在页面加载时选择一个元素(根据<li>
内的<a>
的标题属性)并删除除所选元素之外的其余列表元素。
使用这个:
$("#div").find("a[title='Previous Page']").not(this).remove();
它不工作。
http://jsfiddle.net/ymhrF/16/
【问题讨论】:
【参考方案1】:我会遵循的逻辑是:
获取所有列表元素 (li
)
选择那些没有具有指定标题的孩子a
的人(使用filter
方法很容易,我真的建议您熟悉它)
删除选中的一个
您可以完成此计划的一种方法是:
$('#list li')
.filter(function ()
return !$(this).has('a[title="Previous Page"]').length;
)
.remove();
您可以通过多种方式编写过滤函数(使用find()
而不是has()
或使用某种组合选择器),但我真的认为您应该使用filter()
。它使您的代码更具可读性,并且可以很好地描述实际发生的情况。
jsFiddle Demo
【讨论】:
【参考方案2】:$("#custom_pagination").find("a").not('[title="umm"]').parent('li').remove();
如果您想将其保留为一行代码。
【讨论】:
【参考方案3】:$("li")
.each(function()
if( $(this).find("a").is("[title='yourTitle']") )
$(this)
.siblings()
.remove();
);
Example.
或者你可以更简单一点:
$("li")
.find("a[title='yourTitle']")
.parent()
.siblings()
.remove();
Example.
但这仅适用于存在单个 a
标记且标题属性为 yourTitle
(或您决定查找的任何标题)的情况。
【讨论】:
是的,它可以工作,但是如果没有与标题匹配的元素,则结果会显示整个列表 只需将else
添加到if
即可删除所有li
元素。以上是关于找到具有特定标题的 li 并删除其余的 li的主要内容,如果未能解决你的问题,请参考以下文章
如果 li 包含文本,则将更改应用于同一 li 中的特定 div,而不是全部
如何查找特定的数字长度,并使用 Notepad++ 删除/过滤其余部分?
用js添加li并在li里添加一个删除按钮,点击按钮 就要删除这个li, 但是我想问 我点击按钮 怎么找到这个li?