如何在jQuery中处理单个类的多个实例?

时间:2013-10-05 04:18:41

标签: javascript jquery location href

我不确定如何处理这样的多个实例。我知道在普通的JS中我可以简单地使用[0]等。

我的代码是:

location.href = $('a.test').attr('href');

我需要处理第一个测试实例和第二个测试实例。有一个简单的

location.href = $('a.test')[0].attr('href');

我失踪了?

4 个答案:

答案 0 :(得分:2)

$('a.test')[0]返回没有方法attr()的dom元素引用,因此您的脚本将失败

使用.eq(索引)

location.href = $('a.test').eq(0).attr('href');

location.href = $('a.test:eq(0)').attr('href');

答案 1 :(得分:2)

你试图在javascript DOM对象上调用attr而不是使用jQuery对象,因为索引器返回DOM对象使用eq()来获取jQuery对象

location.href = $('a.test').eq(0).attr('href');

您可以使用带有href的DOM对象而不是attr

location.href = $('a.test')[0].href;

答案 2 :(得分:2)

location.href = $('a.test').eq(0).attr('href');

或者你可以尝试

location.href = $('a.test:eq(0)').attr('href');

参考eq():eq()以及attr

答案 3 :(得分:1)

此演示可能有所帮助:工作演示 http://jsfiddle.net/CmQGu/

您也可以在此处使用nth-child api演示:http://jsfiddle.net/wYdyJ/

有很多方法可以解决这个问题,就像我在演示中向您展示的那样。如果你热衷于阅读:Difference between .eq() and .get() and :nth-child()?

API:

<强>代码

alert(location.href = $('a.test').eq(0).attr('href'));

alert(location.href = $('a.test').first().attr('href'));

alert(location.href = $('a.test:nth-child(2)').attr('href'));

希望它有助于:)