Javascript 为什么.attr不更改每个函数中的属性?

Javascript 为什么.attr不更改每个函数中的属性?,javascript,jquery,attr,Javascript,Jquery,Attr,我有一个非常简单的脚本,可以更改链接的ids,但不知何故它不起作用。代码如下: $(document).ready( function() { $('mylinks').each(function(index) { $(this).attr({ 'id': 'mylink-'+index }); }); }); <div class="mylinks"> <a href="http://www.goog

我有一个非常简单的脚本,可以更改链接的
id
s,但不知何故它不起作用。代码如下:

$(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>
$(文档).ready(函数(){
$('mylinks')。每个(函数(索引){
$(this.attr)({
'id':'mylink-'+索引
});
});
});
我已尝试将
MyLink
更改为:

  • div.mylinks
  • div.mylinks a
但没有一个成功。我错过了什么

编辑


你们大多数人是对的。我必须使用
$('.mylinks a')。每个(…
),但问题是我查看的是
RMB
->
源代码(其中内容未更新),而不是
检查元素
编辑您的代码并更改此:

$('.mylinks a')

您的代码引用的是div,而不是links。哦,您省略了mylinks之前的句点,以便正确地表示div的类

$('mylinks')。每个(
应该是
$('.mylinks a')。每个(

这里有一个

$('.mylinks a').each(function(index) {
    $(this).attr({
        'id': 'mylink-' + index
    });
});​

选择器
mylinks
匹配页面上的每个
元素


要匹配mylinks类成员的后代元素,您需要
。mylinks a

如果
mylinks
是您给链接的类,那么您应该编写
$('.mylinks')

您的选择器对于mylinks不正确。它应该是
$('.mylinks a')。每个()

选择器以
开头。按如下所示更改代码

$('.mylinks a').each(function(index) {
        $(this).attr('id', 'mylink-'+index);
});
$('mylinks')
将查找标记名为
mylinks
的元素。可能是键入错误,您应该使用
作为类选择器。如果要选择
.mylinks
中的所有锚元素并在其中设置ID,请使用此选项

$(document).ready( function() {
    $('.mylinks a').each(function(index) {
        $(this).attr({
            'id': 'mylink-'+index
        });
    });
});

您需要告诉它查看链接,而不仅仅是div。这是有效的:

$(document).ready( function() {
    $('.mylinks a').each(function(index) {
        $(this).attr("id", "mylinks"+index);
    });
});

(在你编辑它之前)将匹配div,而不是(在你编辑它之前)将匹配
,这在HTML中是不存在的。@Quentin-是的,我捕捉到了(一定喜欢编辑链接)。我的手指在键盘上飞得太快了,我很幸运我没有其他打字错误。它不是。我的链接是容器类。然后使用
$('.mylinks')。查找('a')
FYI,最好执行
this.id='mylink-'+index
,而不是使用
.attr()
。这样的代码更干净、更短、更快……或者如果您确实使用
.attr()
方法,则使用它来消除
。每个()
调用,就像这样…
$('.mylinks a').attr('id',函数(i){return'mylink-'+i;});
另外,还有一个方便实用程序,可以用来缩短document.ready格式,如:$(function(){});
$(document).ready( function() {
    $('.mylinks a').each(function(index) {
        $(this).attr("id", "mylinks"+index);
    });
});