jQuery 找到最近的 parent link 属性

jQuery find closest parent link with attribute

我想从 children .startpoint 中找到属性 findme 最近的 link。 结构:

<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 不是 parent 元素而是 parent 的另一个 child,我的示例将找不到元素。 示例:http://jsfiddle.net/rjhgvxoe/

我怎样才能让它工作?

您需要使用:

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

Demo

您需要这样的选择器:

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

这将查询最近的 <li> 元素,该元素包含具有属性 data-findme 的元素。从那里抓住锚点

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