$(d).attr("id")是未定义的javascript

Tsu*_*oku 0 javascript jquery firebug

我有一个变量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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我在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)

tj1*_*111 8

为什么不检查一下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");
         }
    }
}
Run Code Online (Sandbox Code Playgroud)