我想知道是否有更简单的方法来检查元素是否具有特定类的祖先。
考虑以下HTML代码:
<ul id="uniqueID" class="parentClass">
<li class="subclassA">
<div class="subclassB">
<nobr>
<a href="#" class="subclassC1" data="MyText"></a>
<a href="index.php/things" class="subclassC2" style="">MyText</a>
</nobr>
</div>
</li>
<li class="subclassA"> ... </li>
<li class="subclassA"> ... </li>
<li class="subclassA"> ... </li>
</ul>
<div>other elements in this page which I want to select</div>
现在,我可以通过使用jQuery选择器选择元素<a href="index.php/things" class="subclassC2" style="">MyText</a>
来检查特定格式的href。然后我可以做.parent()
已知次数(4),然后检查我现在移动到的那个特定元素的class
属性。虽然这工作得很好,但我很好奇是否有更好的方法可以做到这一点,或许可以让我更有活力?
PS。我选择了很多符合$('[href *= index.php]')
格式的元素,所以我想保留这些元素,但删除那些属于类{{{}成员后代的分类。 1}}。目前我只是使用上面的选择器选择所有元素,然后使用listclass
语句检查并查看它是否适合这种情况。再说一次,如果有更有效的方法来做到这一点(也许首先选择这些元素?)我很乐意听到它。
当前代码:
if
答案 0 :(得分:2)
要概括,您可以使用
<强> .closest( “父类”)强>
答案 1 :(得分:1)
您可以使用closest
和is
:
$('[href*="index.php"]').each(function(){
if ($(this).closest('ul').is('.parentClass')) {
//do things''
}
});
答案 2 :(得分:1)
if($(this).parents("ul.parentClass").length == 0){
//do something
}