我不确定如何处理这样的多个实例。我知道在普通的JS中我可以简单地使用[0]等。
我的代码是:
location.href = $('a.test').attr('href');
我需要处理第一个测试实例和第二个测试实例。有一个简单的
location.href = $('a.test')[0].attr('href');
我失踪了?
答案 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');
答案 3 :(得分:1)
此演示可能有所帮助:工作演示 http://jsfiddle.net/CmQGu/
您也可以在此处使用nth-child
api演示:http://jsfiddle.net/wYdyJ/
有很多方法可以解决这个问题,就像我在演示中向您展示的那样。如果你热衷于阅读:Difference between .eq() and .get() and :nth-child()?
API:
first
:http://api.jquery.com/first/(所有人都错过了这个)eq
:http://api.jquery.com/eq/ nth-child
:http://api.jquery.com/nth-child-selector/ <强>代码强>:
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'));
希望它有助于:)