Jquery 如何让所有的孩子都在child for treeview中?
我有一个类似这样的返回json数据Jquery 如何让所有的孩子都在child for treeview中?,jquery,treeview,hummingbird,Jquery,Treeview,Hummingbird,我有一个类似这样的返回json数据 "data":[ { "taskAssignGroupId":123, "taskAssignGroupName":"Parent Pool", "taskAssignGroupDesc":"Parent Pool Desc", "state": true, "childPools":[ { "
"data":[
{
"taskAssignGroupId":123,
"taskAssignGroupName":"Parent Pool",
"taskAssignGroupDesc":"Parent Pool Desc",
"state": true,
"childPools":[
{
"taskAssignGroupId":124,
"taskAssignGroupName":"Child Pool Name",
"taskAssignGroupDesc":"Child Pool Desc",
"state":true,
"childPools":[
{
"taskAssignGroupId":125,
"taskAssignGroupName":"Child Child Pool Name",
"taskAssignGroupDesc":"Child Child Pool Desc",
"state":true,
"childPools":[
]
}
]
}
]
}
]
正如您在示例中看到的,我有一个父池和父池的子池
主要问题是子池可能是无限的。我的意思是子池可以是1、5或更多。所以在我的代码中,我只能得到一个孩子
如何使用$。每个函数或使用其他选项显示所有儿童
因此,我使用$。分别获取如下数据:
var htmlStr = "";
var checked = '';
$.each(dataSet.data, function (itemId, item) {
htmlStr += '<li><i class="fa fa-plus"></i> <label> <input id="' + item.taskAssignGroupId+ '" type="checkbox" />' + item.taskAssignGroupName+ '</label>'
htmlStr += '<ul>'
$.each(item.childPools, function (index, child) {
if (child.state) {
checked = 'checked=checked';
}
else {
checked = '';
}
htmlStr += '<li><label><input ' + checked + ' class="hummingbird-end-node" id="' + child.taskAssignGroupId+ '" type="checkbox" />' + child.taskAssignGroupName+ "-" + child.taskAssignGroupDesc+ '</label></li>'
});
htmlStr += '</ul>'
htmlStr += '</li>'
});
$('#treeview').html(htmlStr)
$("#treeview").hummingbird();
var htmlStr=”“;
var检查=“”;
$.each(dataSet.data,函数(itemId,item){
htmlStr+=''+项。taskAssignGroupName+''
htmlStr+=''
$.each(item.childpool,函数(index,child){
if(子州){
已检查='已检查=已检查';
}
否则{
选中=“”;
}
htmlStr+='- '+child.taskAssignGroupName+“-”+child.taskAssignGroupDesc+'
'
});
htmlStr+='
'
htmlStr+=' '
});
$('#treeview').html(htmlStr)
$(“#树视图”)。蜂鸟();
谢谢 看一下演示 我创建了一个我们调用的函数,每次我们有一个包含数据的子池
function pool(pools) {
$.each(pools, function(index, child) {
if (child.state) {
checked = 'checked=checked';
} else {
checked = '';
}
htmlStr += '<li><label><input ' + checked + ' class="hummingbird-end-node" id="' + child.taskAssignGroupId + '" type="checkbox" />' + child.taskAssignGroupName + "-" + child.taskAssignGroupDesc + '</label></li>'
if (child.childPools.length > 0) {
htmlStr += '<ul>'
pool(child.childPools)
htmlStr += '</ul>'
}
});
}
功能池(池){
$。每个(池、函数(索引、子项){
if(子州){
已检查='已检查=已检查';
}否则{
选中=“”;
}
htmlStr+=''+child.tasksassigngroupname+“-”+child.tasksassigngroupdesc+' '
如果(child.childPools.length>0){
htmlStr+=''
池(child.childPools)
htmlStr+='
'
}
});
}
工作演示
var数据集={
“数据”:[{
“taskAssignGroupId”:123,
“taskAssignGroupName”:“父池”,
“taskAssignGroupDesc”:“父池描述”,
“国家”:正确,
“儿童池”:[{
“taskAssignGroupId”:124,
“taskAssignGroupName”:“子池名称”,
“taskAssignGroupDesc”:“子池描述”,
“国家”:正确,
“儿童池”:[{
“taskAssignGroupId”:125,
“taskAssignGroupName”:“子池名称”,
“taskAssignGroupDesc”:“子池描述”,
“国家”:正确,
“儿童池”:[
]
}]
}]
}]
}
var htmlStr=“”;
var检查=“”;
$.each(dataSet.data,函数(itemId,item){
htmlStr+=''+item.taskAssignGroupName+''
htmlStr+=''
如果(item.childPools.length>0){
池(项目.子池)
}
htmlStr+='
'
htmlStr+=' '
});
功能池(池){
$。每个(池、函数(索引、子项){
if(子州){
已检查='已检查=已检查';
}否则{
选中=“”;
}
htmlStr+=''+child.tasksassigngroupname+“-”+child.tasksassigngroupdesc+' '
如果(child.childPools.length>0){
htmlStr+=''
池(child.childPools)
htmlStr+='
'
}
});
}
$('#treeview').html(htmlStr)
请将数组粘贴为数据,而不是图像,这样我们就可以使用它进行测试。另外,根据图像中给定的数据,我没有看到任何名为权限的属性
@CarstenLøvboAndersen抱歉,我修复了此问题