1

试图用 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');
});
4

1 回答 1

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属性值的锚标记。

您可以在此处查看文档:http: //api.jquery.com/attribute-equals-selector/

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

问题是您的a标签是标签的孩子liprev()所以直接调用是a行不通的,因为它没有兄弟姐妹。但是,父li标签确实有兄弟姐妹,因此您可以调用prev()它,然后获取其中a.links包含的元素。

这是我准备测试的 jsFiddle:http: //jsfiddle.net/kHnju/

于 2013-09-09T01:10:51.473 回答