好的,我有这个HTML:
<div id="tabs">
<div class="selected"><a href="one"></a></div>
<div><a href="two"></a></div>
<div><a href="three"></a></div>
</div>
我只有一个选择了包含链接的类的div。我想要找到的是那之后的第一个链接,所以我尝试了这个jquery
var $newTab = $('#tabs div.selected a').find('a').eq(0).attr("href");
alert($newTab);
并返回undefined。如何找到下一个元素的href?
我也试过这个:
var $newTab = $('#tabs div.selected').find('a').eq(0).attr("href");
alert($newTab);
返回一个然后我尝试改变.eq():
var $newTab = $('#tabs div.selected').find('a').eq(1).attr("href");
alert($newTab);
然而,结果又回到了未定义的状态。
答案 0 :(得分:3)
如果您想查找.selected
课程的下一个div,可以使用.next()
var $newTab = $('div.selected').next().find('a').attr("href");
演示Fiddle
答案 1 :(得分:1)
抓住所选的div,然后找到它的.next兄弟,然后获取锚标记
$('#tabs div.selected').next().find("a").attr("href")
您也可以使用一个选择器
$('#tabs div.selected + div a').attr("href");
+
是兄弟选择器
答案 2 :(得分:0)
如果我理解正确,您需要在选定的链接之后的下一个链接。
尝试next()而不是eq:
$('#tabs').find('.selected').next().find('a').attr('href');
之后的或.next()。next():
$('#tabs').find('.selected').next().next().find('a').attr('href');
eq(0)
,在你的测试中是唯一有效的,因为div标签中只有一个锚点;它实际上是不必要的。
答案 3 :(得分:0)
使用first()而不是eq(n)来获取第一个项目。
var $newTab = $('div.selected').find('a').first().attr("href");
alert($newTab);
由于只选择了一个项目,因此您无需使用索引进行检索,这也应该有效。
var $newTab = $('div.selected').find('a').attr("href");
alert($newTab);
答案 4 :(得分:0)
试试这个
var result = $('div.selected').next().find('a').attr('href');