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);
});
});