TypeError:$(...)[1] .attr不是函数 [英] TypeError: $(...)[1].attr is not a function
问题描述
我设置的链接如下:
HTML:
< a href =www.example1.comclass =some-link>
< a href =www.example2.comclass =some-link>
< a href =www.example3.comclass =some-link>
< a href =www.example4.comclass =some-link>
我想得到 href
s < a>
标记包含。我尝试迭代每个链接,如下所示:
Javascript / jQuery:
for(x = 0; x< 5; x ++){
link = $(。some-link)[x] .attr(href);
console.log(link);
}
当我尝试这个时,我收到错误 TypeError :$(...)[x] .attr不是函数
。有什么问题?谢谢。
你需要使用 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);}
< script src =https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js>< / script>< a href =www.example1.comclass = some-link>< a href =www.example2.comclass =some-link>< a href =www.example3.comclass =some-link>< a href =www.example4.comclass =some-link>< a href =www.example4.comclass =some-link>
或者您可以使用 每个()
方法
$ (。some-link)。each(function(){var link = $(this).attr(href); console.log(link);})
< script src =https://ajax.googleapis.com/ajax/libs/jqu ery / 1.11.1 / jquery.min.js>< / script>< a href =www.example1.comclass =some-link>< a href =www.example2。 comclass =some-link>< a href =www.example3.comclass =some-link>< a href =www.example4.comclass =some-link >< a href =www.example4.comclass =some-link>
或更简单的方式使用 attr()$ c带回调的$ c>
$(。some-link)。attr(href, function(i,link){console.log(link);})
< script src =https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js>< / script>< a href =www .example1.comclass =some-link>< a href =www.example2.comclass =some-link>< a href =www.example3。 comclass =some-link>< a href =www.example4.comclass =some-link>< a href =www.example4.comclass =some-link >
I have links set up like so:
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">
I want to get the href
s that the <a>
tags contain. I tried to iterate through each link like so:
Javascript / jQuery:
for (x=0; x < 5; x++) {
link = $(".some-link")[x].attr("href");
console.log(link);
}
When I try this, I get the error TypeError: $(...)[x].attr is not a function
. What's the issue? Thanks.
You need to use eq()
here, since $(".some-link")[x]
returns dom object attr()
method can only use with jQuery object. So you nee to use eq(x)
or :eq()
for (x=0; x < 5; x++) {
link = $(".some-link").eq(x).attr("href");
console.log(link);
}
<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">
or you can use each()
method instead
$(".some-link").each(function(){
var link=$(this).attr("href");
console.log(link);
})
<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">
or more simple way use attr()
with callback
$(".some-link").attr("href",function(i,link){
console.log(link);
})
<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">
这篇关于TypeError:$(...)[1] .attr不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!