使用jQuery选择具有特定属性子元素的父元素

3
我已经阅读了这个Stack Overflow的问题:jQuery - select children which has specific styles,但我的问题有些不同。
我想选择那些其一级子元素(而不是所有后代元素)具有某些特定样式的父元素。类似于这样:
<ul id="BIG">
    <li>Home

        <ul id="SMALL">
            <li> 123 </li>
            <li name="foo"> 123 </li>
            <li> 123 </li>
        </ul>

    </li>
    <li>Articles</li>
    <li>Petitions</li>
    <li>Contact</li>
</ul>

我想抓取id为"SMALL"的UL。但我的选择器捕获了所有2个UL标签:

$('ul:has(li[name="foo"])')

有什么建议吗?

你的问题与样式属性无关,我认为标题应该更改。 - Sandeepan Nath
谢谢,我刚刚改了。 - vantrung -cuncon
2个回答

3
使用 child 选择器 >,如下所示:
$('ul > li[name="foo"]').parent()

查看工作演示


我没想到 .parent() 能够返回多个元素。非常感谢。 - vantrung -cuncon
当然可以。parent()返回父元素的集合 - 对于选择器$(...)所选的每个元素,返回一个父元素。http://api.jquery.com/parent/ - Leon Helmsley

2

试试这个:

$('li[name="foo"]').parent();

这里有演示

请注意,根据元素属性选择DOM元素的速度较慢。如果可以,请尽量限制搜索范围。例如:

$('#BIG').find('li[name="foo"]').parent();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接