jQuery找到与属性最近的父链接

时间:2015-01-16 13:16:12

标签: jquery html list closest

我想从孩子findme中找到与属性.startpoint最近的链接。 结构:

<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 个答案:

答案 0 :(得分:12)

你需要一个像这样的选择器:

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

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

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

答案 1 :(得分:2)

您需要使用:

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

<强> Demo