我设置的链接如下:
HTML:
<a href="www.example1.com" class="some-link">
<a href="www.example2.com" class="some-link">
<a href="www.example3.com" class="some-link">
<a href="www.example4.com" class="some-link">
我希望得到href
标记包含的<a>
个。我试图像这样迭代每个链接:
Javascript / jQuery:
for (x=0; x < 5; x++) {
link = $(".some-link")[x].attr("href");
console.log(link);
}
当我尝试这个时,我收到错误TypeError: $(...)[x].attr is not a function
。问题是什么?感谢。
答案 0 :(得分:14)
您需要在此处使用 eq()
,因为$(".some-link")[x]
返回dom对象 attr()
方法只能与jQuery对象一起使用。所以你需要使用 eq(x)
或 :eq()
for (x=0; x < 5; x++) {
link = $(".some-link").eq(x).attr("href");
console.log(link);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="www.example1.com" class="some-link">
<a href="www.example2.com" class="some-link">
<a href="www.example3.com" class="some-link">
<a href="www.example4.com" class="some-link">
<a href="www.example4.com" class="some-link">
&#13;
或者您可以使用 each()
方法
$(".some-link").each(function(){
var link=$(this).attr("href");
console.log(link);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="www.example1.com" class="some-link">
<a href="www.example2.com" class="some-link">
<a href="www.example3.com" class="some-link">
<a href="www.example4.com" class="some-link">
<a href="www.example4.com" class="some-link">
&#13;
或更简单的方法使用 attr()
进行回调
$(".some-link").attr("href",function(i,link){
console.log(link);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="www.example1.com" class="some-link">
<a href="www.example2.com" class="some-link">
<a href="www.example3.com" class="some-link">
<a href="www.example4.com" class="some-link">
<a href="www.example4.com" class="some-link">
&#13;
答案 1 :(得分:3)
[1]
索引器(相当于.get()
)不返回jQuery元素,而是返回DOM元素。试试
var link = $(".some-link").eq(x).attr("href");
作为旁注,您可能希望使用var
声明变量。