我有一个变量d,我用这个:
$(function() { for(i = 1; i <= 31; i++) { var d = '#days' + i; if ($(d).attr("id").substr(4,2) == 11) { $(d).addClass("date_has_event"); //console.log("diez"); } else { console.log("otro"); } } }
但是我在firebug中收到以下错误:
$(d).attr("id") is undefined index.html (L23) (?)()() jquery.min.js (L27) onreadystatechange()() jquery.min.js (L27) onreadystatechange()() jquery.min.js (L21) nodeName()([function(), function()], function(), undefined) onreadystatechange()()
我真的不明白为什么.有人知道吗?
编辑
对于我必须运行的糟糕解释,我感到很遗憾,这里的内容更加详细.我正在使用javascript生成日历.每个td有一个不同的id(因此#days + i),我从1到31运行它,所以我可以覆盖更长的月份.但是我收到了上面提到的错误.我也使用jQuery库让我更容易选择(即代替getElementById #days)
为什么不检查一下i == 11
,然后对它进行处理?它仍然只会开火$('#days11')
.编辑:如果你需要确保元素存在,只需将其打入条件.
$(function(){ for(i = 1; i <= 31; i++){ var d = '#days' + i; // if($(d) && i == 11){ if(i == 11){ $(d).addClass("date_has_event"); //console.log("diez"); }else{ console.log("otro"); } } }