尝试使用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');
});
答案 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/