Jquery 选择所选子项的父项
首先,如果这是一个多余的问题,请原谅我。我想你会同意,这是一个很难合理地具体搜索的案例 我的html看起来像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> <
<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')。有什么实际区别?有吗?哦,我不知道你可以用>,知道这个很好。谢谢。哦,我不知道你可以用>,知道这个很好。非常感谢。