TypeError: $(. .)[1].Attr不是一个函数
TypeError: $(...)[1].attr is not a function
链接设置如下:
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">
我想要得到<a>
标签包含的href
s。我尝试遍历每个链接,像这样:
for (x=0; x < 5; x++) {
link = $(".some-link")[x].attr("href");
console.log(link);
}
当我尝试这个时,我得到错误TypeError: $(...)[x].attr is not a function
。有什么问题吗?谢谢。
这里需要使用 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.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">
或者您可以使用 each()
方法代替
$(".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">
或更简单的方法使用 attr()
与回调
$(".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">
[1]
索引器(相当于.get()
)不返回jQuery元素,而是返回DOM元素。试着
var link = $(".some-link").eq(x).attr("href");
作为旁注,您可能希望使用var
声明变量。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么