查找特定元素jquery

时间:2013-09-23 06:22:16

标签: jquery html

好的,我有这个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);
然而,结果又回到了未定义的状态。

5 个答案:

答案 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")

JSFiddle

您也可以使用一个选择器

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

+是兄弟选择器

JSFiddle

答案 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');