为什么.attr不更改每个函数中的属性
Why .attr does not change the attribute in each function?
我有一个非常简单的脚本,应该可以更改链接的id
,但不知怎么的,它不起作用。这是代码:
$(document).ready( function() {
$('mylinks').each(function(index) {
$(this).attr({
'id': 'mylink-'+index
});
});
});
<div class="mylinks">
<a href="http://www.google.com">google</a>
<a href="http://www.google.com">google2</a>
</div>
我已尝试将mylinks
更改为:
div.mylinks
div.mylinks a
但它们都不起作用。我错过了什么?
编辑
你们大多数人都是对的。我必须使用$('.mylinks a').each( ...
,但问题是我看到的是RMB
->Source
(其中内容没有更新),而不是Inspect Element
。
mylinks
匹配页面上的每个<mylinks>
元素。
要匹配作为mylinks类成员的后代的<a>
元素,您需要.mylinks a
。
编辑您的代码并更改它:
$('.mylinks a')
您的代码引用的是div,而不是链接。哦,你去掉了mylink之前的句点,以正确地表示div的类。
$('mylinks').each(
应为$('.mylinks a').each(
下面是一个jsFiddle示例。
$('.mylinks a').each(function(index) {
$(this).attr({
'id': 'mylink-' + index
});
});
$('.mylinks a').each(function(){ ... });
您的选择器对mylink不正确。它应该是$('.mylinks a').each()
class
选择器从.
开始。将代码更改为以下
$('.mylinks a').each(function(index) {
$(this).attr('id', 'mylink-'+index);
});
如果mylinks
是您给链接的类,那么您应该编写$('.mylinks')
您需要告诉它查看链接,而不仅仅是div
$(document).ready( function() {
$('.mylinks a').each(function(index) {
$(this).attr("id", "mylinks"+index);
});
});
$('mylinks')
将查找标记名为mylinks
的元素。可能是打字错误,您应该使用.
作为类选择器。如果您想选择.mylinks
中的所有锚元素并设置其ID,则使用此选项。
$(document).ready( function() {
$('.mylinks a').each(function(index) {
$(this).attr({
'id': 'mylink-'+index
});
});
});
相关文章:
- 从嵌套函数访问函数属性
- Javascript嵌套函数属性继承
- Javascript-在全局作用域中调用本地函数/属性
- 正在重置原型对象的构造函数属性
- javascript函数属性设置器中的延迟
- jQuery插件返回this.each并为每个对象添加函数属性
- 从函数属性访问对象属性;不适用于Firefox
- 当使用“”创建时保留函数属性;绑定”;
- 在多个(html)元素上循环执行相同的JavaScript函数属性更改
- 如何将新的构造函数属性推送到数组
- 通过构造函数属性和运算符实例设置继承
- 角度表达式无法使用构造函数属性分辨变量类型
- 为什么要在函数定义之外引用静态变量(函数属性)
- Javascript“构造函数”属性中的错误 - IE 8
- 为什么浏览器支持对象的隐式函数属性
- 构造函数属性值应该是什么 .a 原型构造函数或对象构造函数本身
- 使用模块模式调用函数属性
- React 组件流类型检查中的可选函数属性失败
- 是否可以在 javascript 中的对象文字上定义函数属性
- JavaScript:如何捕获对象的任何缺失函数/属性