【问题标题】:jquery select parent that has children with certain attributesjquery选择具有某些属性的孩子的父母
【发布时间】:2012-10-13 04:56:08
【问题描述】:

我读过这个 SO 问题:

jQuery - select children which has specific styles

但我的问题有点不同。

我想选择他们的 1 级孩子(并非所有后代)具有某些特定风格的 PARENTS。像这样的:

<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"])')

有什么建议吗?

【问题讨论】:

  • 你的问题不是关于样式属性,我认为应该改变标题
  • 谢谢,我刚换了。

标签: jquery styles selector children


【解决方案1】:

使用child 选择器&gt;,像这样:

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

查看工作demo

【讨论】:

  • 我认为 .parent() 不能返回超过 1 个元素。非常感谢
  • 当然可以。 parent() 返回父元素的集合——选择器 $(...) 选择的每个元素都有一个父元素。 api.jquery.com/parent
【解决方案2】:

试试这个:

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

Demo here.

请注意,根据属性选择 DOM 元素很慢。如果可以,请尝试限制搜索范围。例如:

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

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    相关资源
    最近更新 更多