描述
简直是心慌慌,今天遇到一个遍历问题时,想到没用过for(var key in arrays),所以便想着用用,免得以后忘记了。
没想到,这特么给我扯犊子,明明长度是3,硬是每次都要遍历6次...
解决
我先用debugger,咳咳,半天没懂为什么已经跑完了3次循环,还在循环里。
然后用控制台输出的方法,发现了这厮原来是神探,可以把数组里莫名其妙的东西遍历出来。当然这并没什么卵用。
这是证据:
慎用,慎用!
谢谢ChronosTartaro的提点。
js代码:
window.onload=function(){
var xml= loadXML("test.xml");
var rows = oxml.getElementsByTagName("row");//取得xml中row节点
console.log("rows.length="+rows.length)
for(var key in rows){
console.log("rows["+key+"]="+key);
}
}
//解析XML不支持谷歌浏览器
var loadXML = function (xmlFile) {
var xmlDoc;
if(window.ActiveXObject) {
xmlDoc =new ActiveXObject("microsoft.xmldom");
}else if (document.implementation && document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument('','', null);
}
try{
xmlDoc.async =false;//关闭异步执行,让页面等待xmlDoc加载完毕,再继续执行
xmlDoc.load(xmlFile);
}catch(e){
alert(e);
}
return xmlDoc;
}
xml代码:
<?xml version="1.0" encoding="utf-8" ?>
<page>
<header></header>
<body>
<row>
<col widgetname="category" colspan="3"></col>
<col widgetname="main_slide" colspan="6"></col>
<col widgetname="notices" colspan="3"></col>
</row>
<row>
<col widgetname="index_tab_goods" colspan="9">
<col widgetname="main_slide" colspan="6"></col>
<col widgetname="main_slide" colspan="6"></col>
</col>
<col widgetname="sales_charts" colspan="3"></col>
</row>
<row>
<col widgetname="image_text_1" colspan="12"></col>
<col widgetname="index_goods_1" colspan="12"></col>
</row>
</body>
<footer></footer>
</page>