isNaN在IE和Chrome中获得不同的结果

时间:2012-06-29 02:42:22

标签: javascript javascript-events

我需要在网页的每个链接中绑定onclick函数,所以我使用这个函数

var links = document.getElementsByTagName('a');// total 5 links
for(var key in links){
   //always be true in IE, But just be true from second latest in chrome
   alert(isNaN(parseInt(key)));
   if(isNaN(parseInt(key))){
      break;
   }else{
      ...
   }
}

请帮助,谢谢

更新: 这似乎是for(链接中的var键)的问题,当在IE中时,键成为链接的ID,但它只是chrome中的数字

2 个答案:

答案 0 :(得分:2)

您正在枚举锚标记之外的其他内容,其中一些内容应该是NaN。使用常规for循环:

for(var i=0; i<links.length; i++) {
    // do something with links[i], 
    // which is guaranteed to be
    // an anchor tag
}

答案 1 :(得分:1)

如果您正在使用jQuery(我强烈建议您使用),请使用$.isNumeric()函数。

您还应该使用jQuery选择器替换document.getElementsByTagName

$('a').each(function(index, tag) {
    if($.isNumeric($(tag.attr('SOMEATTRIBUTE'))) {
        // do whatever you want here
    } else {
        // do the other condition here
    }
});