我在工作的网站上工作,当我遇到一些奇怪的东西时,我通过ajax从数据库中获取数据,然后我使用一些循环来更新表中的数据.这是我第一次尝试循环
for(var id in data){
for(var key in data[id])
for(var e in document.getElementsByName(key+id))
e.innerHTML = data[id][key] !== null ? data[id][key] : "";
Run Code Online (Sandbox Code Playgroud)
我希望这可以毫无问题地工作,但事实并非如此.表中的所有字段都没有更新,我不知道为什么.然后我决定用更传统的东西进行测试,最后得到了这个.
for(var id in data){
for(var key in data[id]){
var temp = document.getElementsByName(key+id);
for(var i=0; i<temp.length; i++)
temp[i].innerHTML = data[id][key] !== null ? data[id][key] : "";
}
Run Code Online (Sandbox Code Playgroud)
这是完美的,但我不明白为什么,因为从我所看到的,循环应该做同样的事情.所以我想知道,为什么它们不同,我该如何解决它.我喜欢我的代码中的一致性,并且不想使用for(var i=0; i<temp.length; i++)因为我之前使用过其他类型的循环.
document.getElementsByName(key+id)返回一个数组.语法for(var x in y)迭代对象/数组中的名称.对象中的名称是键,数组中的名称是索引.
因此,e在你最后一个循环中,将是0,1,2,3,长度,....
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |