Jquery找到一个带有另一个项id的href的锚链接

时间:2013-09-09 01:06:29

标签: jquery

尝试使用jquery查找元素并遇到障碍。

我有一个变量,其中存储了另一个元素id。我试图找到与该存储变量相对应的锚链接,因为它是href。然后直接在该锚之前获取锚链接(href)。

所以基本上找到列表项锚链接之前的列表项锚链接,其中包含显示的div的id

html的

<li><a href="#example" class="links">example</a></li>
<li><a href="#example1" class="links">example</a></li>
<li><a href="#example2" class="links">example</a></li>
<li><a href="#example3" class="links">example</a></li>

<div id="example" class="divs"> random stuff </div>
<div id="example1" class="divs open"> random stuff </div>
<div id="example2" class="divs"> random stuff </div>
<div id="example3" class="divs"> random stuff </div>

.js

$('.previous').click(function(e) {
    e.preventDefault();
    var exampleId = $('.divs.open').attr('id');
    var anchorPrev = $('.links').find('href');
});

1 个答案:

答案 0 :(得分:3)

试试这个:

$('.previous').click(function (e) {
    e.preventDefault();
    var exampleId = $('.divs.open').attr('id');
    var selector = "a.links[href='#" + exampleId + "']";
    var link = $(selector);
    var prev = link.parent().prev().find('a.links');    
});

这样做是告诉jQuery找到一个具有指定值href属性的锚标记。

您可以在此处查看文档:{​​{3}}

编辑好的,我明白了。我编辑了上面的代码示例,以反映有关获取上一个链接的原始问题。但请注意,这对列表中的第一个元素不起作用。

问题是,您的a代码是li代码的子代。因此,直接在prev()上调用a将无效,因为它没有兄弟姐妹。但是,父li代码确实有兄弟姐妹,因此您可以在其上调用prev(),然后获取其中包含的a.links元素。

这是一个我试图测试的jsFiddle:http://api.jquery.com/attribute-equals-selector/