Jquery 选择所选子项的父项

Jquery 选择所选子项的父项,jquery,jquery-selectors,Jquery,Jquery Selectors,首先,如果这是一个多余的问题,请原谅我。我想你会同意,这是一个很难合理地具体搜索的案例 我的html看起来像 <li class='signature'> <span class='label'>Signature:</span> <div class='folding'> <span class='data'></span> </div> </li> <

首先,如果这是一个多余的问题,请原谅我。我想你会同意,这是一个很难合理地具体搜索的案例

我的html看起来像

<li class='signature'>
    <span class='label'>Signature:</span>
    <div class='folding'>
        <span class='data'></span>
    </div>
</li>
<li class='issuer'>
    <span class='label'>Issuer:</span>
    <span class='data'></span>
</li>
但这当然增加了班的跨度,而不是李

我是不是每个人都有一个?(如果是这样的话,任何关于最好的方法的提示都会很好,但不在问题的范围之内)

谢谢

试试下面的方法

$('li:has(.folding)').addClass("arrowable");

尝试以下方法

$('li:has(.folding)').addClass("arrowable");

如果
li
始终是绝对家长:

$("div.folding").parent().addClass("new-class")
否则,将继续搜索层次结构,直到找到
li

$("div.folding").closest("li").addClass("new-class")
[编辑]
迪奥斯拉斯卡的解决方案要好得多。但是,请将我的保留在此处以供参考。

如果
li
始终是绝对家长:

$("div.folding").parent().addClass("new-class")
否则,将继续搜索层次结构,直到找到
li

$("div.folding").closest("li").addClass("new-class")
[编辑] 迪奥斯拉斯卡的解决方案要好得多。将我的保留在这里以供参考。

例如:

$('.folding').parent().addClass('arrowable');
//编辑速度太慢。

例如:

$('.folding').parent().addClass('arrowable');
//编辑速度太慢。

试试这个

$('li').has('.folding').addClass("arrowable");
试试这个

$('li').has('.folding').addClass("arrowable");

如果只想检查li的直系子女:

$('li:has(> div.folding)').addClass("arrowable");

如果只想检查li的直系子女:

$('li:has(> div.folding)').addClass("arrowable");
请试试这个:

$("li:has(div.folding)").addClass("new-class")
这将准确地选择
li
元素,该元素是具有类
“折叠”的
div
的父元素。请尝试以下操作:

$("li:has(div.folding)").addClass("new-class")

这将准确地选择
li
元素,该元素是具有类
“折叠”
div
的父元素。您的解决方案是一个更好的解决方案。Dioslaska的解决方案将在此中断:而您的解决方案将按预期工作。是的,itt将中断,但这不是指定的情况。例如,如果您将另一个具有“折叠”类且具有li祖先的div放置在某个位置,则此解决方案将停止,并向li添加不需要的类。(不过我无意冒犯这个解决方案,它是完全正确的,我真的不知道哪个选择器更快)啊哈,我看到了两者之间的区别。非常有用的比较,谢谢@Luke和@dioslaska。我将此作为解决方案进行检查,我将不得不等到html冻结后才能知道我将使用哪一种,但我感到恼火的是,我还没有获得足够的业力来支持这两种解决方案:)您的解决方案更好。Dioslaska的解决方案将在此中断:而您的解决方案将按预期工作。是的,itt将中断,但这不是指定的情况。例如,如果您将另一个具有“折叠”类且具有li祖先的div放置在某个位置,则此解决方案将停止,并向li添加不需要的类。(不过我无意冒犯这个解决方案,它是完全正确的,我真的不知道哪个选择器更快)啊哈,我看到了两者之间的区别。非常有用的比较,谢谢@Luke和@dioslaska。我将此作为解决方案进行检查,我将不得不等到html冻结后才能知道我将使用哪一个,但我感到恼火的是,我还没有获得足够的业力来升级这两个解决方案:)将此与上面dioslaska的解决方案进行比较,我没有意识到您可以用这种方式指定div.folding。很高兴知道,谢谢!与上面dioslaska的解决方案相比,我没有意识到可以用这种方式指定div.folding。很高兴知道,谢谢!你在这里所做的与下面@littlealien建议的“$('li')。has”之间的实际区别是什么?有什么区别吗?你在这里所做的与下面@littlealien建议的“$('li')。有什么实际区别?有吗?哦,我不知道你可以用>,知道这个很好。谢谢。哦,我不知道你可以用>,知道这个很好。非常感谢。