jQuery查找具有属性的最近父链接

13

我想从子元素 .startpoint 中找到具有属性 findme 的最近链接。

<ul>
    <li><a href="#">Point one</a></li>
    <li><a href="#" data-findme="yipi">Point one</a>
        <ul>
            <li><a href="#">Hello</a></li>
            <li><a href="#">Hello</a>
                <ul>
                    <li><a href="#" class="startpoint">My Startpoint</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

JavaScript(jQuery):

$(document).ready(function(){
    console.log(
        $('.startpoint').closest("*[data-findme]")
    );
});

问题在于元素data-findme不是父元素,而是另一个父元素的子元素,因此我的示例无法找到该元素。 示例:http://jsfiddle.net/rjhgvxoe/

我该如何使其正常工作?

2个回答

21
您需要这样的选择器:

您需要这样的选择器:

$('.startpoint').closest("li:has(*[data-findme])")

这会查询包含具有属性data-findme的元素的最近的<li>元素。从那里获取锚点。

$('.startpoint').closest("li:has(*[data-findme])").children('[data-findme]')

星号不是必需的。这个可以正常工作:$('.startpoint').closest('li:has([data-findme])')另外,我不确定为什么你会在单引号和双引号之间切换。尽可能使用单引号。 - John Vandivier

5

您需要使用:

 $('.startpoint').closest("ul").find('[data-findme]')

Demo


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