Javascript isNaN在IE和Chrome中获得不同的结果
我需要在网页的每个链接中绑定onclick函数,所以我使用这个函数Javascript isNaN在IE和Chrome中获得不同的结果,javascript,javascript-events,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
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 key)的问题,当在IE中时,key成为链接的Id,但它只是chrome中的数字您正在枚举锚标记之外的其他内容,其中一些内容应该是
NaN
。对循环使用常规的:
for(var i=0; i<links.length; i++) {
// do something with links[i],
// which is guaranteed to be
// an anchor tag
}
for(var i=0;i如果您正在使用jQuery(我强烈建议您这样做),请使用$.isNumeric()
函数
您还应该将document.getElementsByTagName
替换为如下jQuery选择器
$('a').each(function(index, tag) {
if($.isNumeric($(tag.attr('SOMEATTRIBUTE'))) {
// do whatever you want here
} else {
// do the other condition here
}
});
谢谢你bfavaretto,我发现问题出在for(key in)语句中。没错。for..in
将循环通过链接的其他属性,例如项(即NaN
)。是的,你说得对,但在ie中,因为我无法使用链接[key]。addEventListener('click',function(){})此外,它将抛出一个错误例外。这是另一个问题,您必须在使用addEventListener之前进行检查,如果不可用,请使用attachEvent(即