-2

好的,所以我有这个 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);

它返回未定义。如何找到下一个 a 元素的 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);

但是结果又回到未定义状态。

4

5 回答 5

3

如果你想找到.selected类的下一个 div,你可以使用.next()

var $newTab = $('div.selected').next().find('a').attr("href");

演示小提琴

于 2013-09-23T06:28:41.813 回答
1

抓取选定的 div,然后找到它的.next兄弟,然后获取锚标记

$('#tabs div.selected').next().find("a").attr("href")

JSFiddle

你也可以用一个选择器来做

$('#tabs div.selected + div a').attr("href");

the+是同级选择器

JSFiddle

于 2013-09-23T06:29:50.980 回答
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);
于 2013-09-23T06:30:03.923 回答
0

尝试这个

var result = $('div.selected').next().find('a').attr('href');
于 2013-09-23T06:32:40.683 回答
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 标签中只有一个锚点;这实际上是不必要的。

于 2013-09-23T06:28:55.050 回答