一个树形菜单的问题。 http://bbs.csdn.net/topics/390382802看详情见这个帖子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看下下面这样OK不<script type="text/javascript">window.onload = function(){ var data = [ { "config_id" : "110", "task_name" : "任务1", "parent_id" : "0" },{ "config_id" : "111", "task_name" : "任务2", "parent_id" : "0" }, { "config_id" : "112", "task_name" : "任务3", "parent_id" : "0" }, { "config_id" : "113", "task_name" : "任务4", "parent_id" : "0" }, { "config_id" : "114", "task_name" : "任务5", "parent_id" : "0" }, { "config_id" : "121", "task_name" : "任务6", "parent_id" : "111" }, { "config_id" : "122", "task_name" : "任务7", "parent_id" : "110" }, { "config_id" : "123", "task_name" : "任务8", "parent_id" : "112" }, { "config_id" : "124", "task_name" : "任务9", "parent_id" : "113" }, { "config_id" : "125", "task_name" : "任务10", "parent_id" : "114" }, { "config_id" : "126", "task_name" : "任务11", "parent_id" : "114" }, { "config_id" : "127", "task_name" : "任务12", "parent_id" : "114" } ]; var html = ['<table border="1">' , '<tr><th>1</th><th>所有任务</th></tr>'] , k = 1; function fn(_pid , _data , _deep){ for(var i = 0 ; i < _data.length ; ++i){ if(_data[i].parent_id == _pid){ k++; html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>'); //console.log(getSpace(_deep)+_data[i].task_name); fn(_data[i].config_id , _data , _deep+1); } } } function getSpace(i){ var _space = ''; for(var j = 0 ; j < i ; ++j){ _space+=' '; } return _space; } fn(0 , data , 0); html.push('</table>'); document.body.innerHTML = html.join('');}</script><BODY> </BODY> 改个地方把html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>');换成html.push('<tr><td>' + k + '</td><td>' + getSpace(_deep) + _data[i].task_name + '</td></tr>'); flot生成直方图 求助大神 过虑textarea换行符的问题 JS高手在不在 用JavaScript编写COM组件有什么优势 如何实现弹出浮动层,让让后面的所有元素都禁用 难道真的没办法防止网页跳出框架??呜~~ 大家帮我看看这3个函数到底是干什么的????头都大掉啦```` 一个简单的参数传递,咋不行呢 javascript中怎么控制浮点数精度? 求救:window.print()方法能不能设置客户端页面格式,而不让它在页眉出现 类似 “页码:1/2”的字样? https://www.tumblr.com/register 是如何表单验证? js如何暂停swf
window.onload = function(){
var data = [
{
"config_id" : "110",
"task_name" : "任务1",
"parent_id" : "0"
},{
"config_id" : "111",
"task_name" : "任务2",
"parent_id" : "0"
}, {
"config_id" : "112",
"task_name" : "任务3",
"parent_id" : "0"
}, {
"config_id" : "113",
"task_name" : "任务4",
"parent_id" : "0"
}, {
"config_id" : "114",
"task_name" : "任务5",
"parent_id" : "0"
}, {
"config_id" : "121",
"task_name" : "任务6",
"parent_id" : "111"
}, {
"config_id" : "122",
"task_name" : "任务7",
"parent_id" : "110"
}, {
"config_id" : "123",
"task_name" : "任务8",
"parent_id" : "112"
}, {
"config_id" : "124",
"task_name" : "任务9",
"parent_id" : "113"
}, {
"config_id" : "125",
"task_name" : "任务10",
"parent_id" : "114"
}, {
"config_id" : "126",
"task_name" : "任务11",
"parent_id" : "114"
}, {
"config_id" : "127",
"task_name" : "任务12",
"parent_id" : "114"
}
];
var html = ['<table border="1">' , '<tr><th>1</th><th>所有任务</th></tr>'] , k = 1;
function fn(_pid , _data , _deep){
for(var i = 0 ; i < _data.length ; ++i){
if(_data[i].parent_id == _pid){
k++;
html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>');
//console.log(getSpace(_deep)+_data[i].task_name);
fn(_data[i].config_id , _data , _deep+1);
}
}
}
function getSpace(i){
var _space = '';
for(var j = 0 ; j < i ; ++j){
_space+=' ';
}
return _space;
}
fn(0 , data , 0);
html.push('</table>');
document.body.innerHTML = html.join('');
}
</script>
<BODY>
</BODY>
把
html.push('<tr><th>' + k + '</th><th>' + getSpace(_deep) + _data[i].task_name + '</th></tr>');
换成
html.push('<tr><td>' + k + '</td><td>' + getSpace(_deep) + _data[i].task_name + '</td></tr>');