假如一个object
rows":[{"id":"32","name":"nam3e1","age":1},{"id":"32","name":"ana2me1","age":2},{"id":"32","name":"b3name1","age":1},{"id":"32","name":"cna3me1","age":3}]}然后在一个table里面<table height="33" border="0" cellpadding="0" cellspacing="0">
<tr class="rr0">
<td class="row0">id</row>
<td class="row1">name</row>
<td class="row2">age</row>
</tr>
<tr class="rr1">
<td class="row0">id</row>
<td class="row1">name</row>
<td class="row2">age</row>
</tr>
一般的思维,是先FOR循环一下object,然后在循环一下每个组
这样的话,就会FOR 套 FOR请问有没有办法拆分开来
rows":[{"id":"32","name":"nam3e1","age":1},{"id":"32","name":"ana2me1","age":2},{"id":"32","name":"b3name1","age":1},{"id":"32","name":"cna3me1","age":3}]}然后在一个table里面<table height="33" border="0" cellpadding="0" cellspacing="0">
<tr class="rr0">
<td class="row0">id</row>
<td class="row1">name</row>
<td class="row2">age</row>
</tr>
<tr class="rr1">
<td class="row0">id</row>
<td class="row1">name</row>
<td class="row2">age</row>
</tr>
一般的思维,是先FOR循环一下object,然后在循环一下每个组
这样的话,就会FOR 套 FOR请问有没有办法拆分开来
解决方案 »
- 截取一个字符串内,指定两个字符之间的字符串, 并存入数组
- 字符问题和id问题
- 提问,手工添加cell后,如何隐藏cell中的<td 控件,style='display:none'不生效
- 收缩菜单的问题,帮帮忙,急用
- 高手帮忙看下,我的javascript方法怎么不执行
- 帮我解决jQuery问题
- 求!截取每句话的正则表达式
- 求助... 一个无限级智能导航菜单的效率优化问题...
- js在客户浏览器端验证远程文件是否存在?小弟弄php的,对js实在不熟,请帮忙
- JAVASCRIPT可以实现以下功能吗?
- JS四舍五入(小5取5,大5进1位)
- 求教:Html 5 中canvas.toDataURL方法报SecurityError错误 ,怎么解决 ??
var html = '<table height="33" border="0" cellpadding="0" cellspacing="0">';
for(var i in obj.rows){
html+='<tr class="rr'+i+'">\
<td class="row0">'+obj.rows[i].id+'</row>\
<td class="row1">'+obj.rows[i].name+'</row>\
<td class="row2">'+obj.rows[i].age+'</row>\
</tr>';
}
html+='</table>';
console.log(html)
<tr>
<td>id</td>
<td>name</td>
<td>age</td>
</tr>
<tbody id="tbodyContent"></tbody>
</table>var json=$.parseJSON(object);
var data=json.rows;
$.each(data, function (i,n) {
var tr="<tr><td>"+n.id+"</td>"
+"<td>"+n.name+"</td>"
+"<td>"+n.age+"</td>"
+"</tr>";
$("#tbodyContent").append(tr);
});
这个嵌套循环是难免的..除非就是他们写的..第二层循环.你省略了..手动写好3个td
在或者弄个each方法来遍历..但最终原理还是嵌套循环..看着好看点吧..
推荐使用数组的forEach方法来遍历吧.这个是JS 1.6定义的规范.有些浏览器已经实现了.没实现的用下面的方法代替if ( !Array.prototype.forEach ) {
Array.prototype.forEach = function(fn, scope) {
for(var i = 0, len = this.length; i < len; ++i) {
fn.call(scope, this[i], i, this);
}
}
}参考网址https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach
<td class="row1">name</row>
<td class="row2">age</row> 里面的td是不固定的,可能很多
{
write1Row(rows[i]);
}
}function write1Row(o){
for each ...{
}
}
renderer(row)
}这个逻辑不可避免
var se = "32,mnam3e1,9|34,ngfssfe1,2|33,ngdddd,7|38,n655dd,3";
var as = se.replace(/([^\|,]+),?/g,"<td>$1</td>");
as = "<table><tr>"+as.replace(/\|/g,"</tr><tr>")+"</tr></table>";
document.write(as);
alert(as);
要相信 计算机的能力另外所谓的双循环 其实只是 一次迭代
也就是 枚举每个 obj
剩余的对每个obj的处理 还需要枚举吗? 那些key不都是固定的 直接引用就可以了