найдите приведенный ниже код для анализа данных json с помощью jquery на нескольких уровнях подкатегорий.
В настоящее время существует 3 подкатегории, я хочу предложить сценарий, как мы можно сделать его динамическим сценарием для отображения подкатегорий.
/**************************************************************/
/* Prepares the cv to be dynamically expandable/collapsible */
/**************************************************************/
function prepareList() {
$('#expList').find('li:has(ul)')
.click( function(event) {
if (this == event.target) {
$(this).toggleClass('expanded');
$(this).children('ul').toggle('medium');
}
return false;
})
.addClass('collapsed')
.children('ul').hide();
//Create the button funtionality
$('#expandList')
.unbind('click')
.click( function() {
$('.collapsed').addClass('expanded');
$('.collapsed').children().show('medium');
})
$('#collapseList')
.unbind('click')
.click( function() {
$('.collapsed').removeClass('expanded');
$('.collapsed').children().hide('medium');
})
};
/**************************************************************/
/* Functions to execute on loading the document */
/**************************************************************/
$(document).ready( function() {
var myJSONCategories ={"categories":[{"ic_id":"100002","ic_disp_val":"Campaigns","ic_sub":1,"ic_sub_categories":[{"ic_id":"100021","ic_disp_val":"Campaigns sub categorist","ic_sub":1,"ic_sub_categories":[{"ic_id":"100118","ic_disp_val":"camp 1","ic_sub":0},{"ic_id":"100119","ic_disp_val":"camp 2","ic_sub":0},{"ic_id":"100120","ic_disp_val":"camp 3","ic_sub":0}]}]},{"ic_id":"100002","ic_disp_val":"Products","ic_sub":1,"ic_sub_categories":[{"ic_id":"100021","ic_disp_val":"cxtest","ic_sub":1,"ic_sub_categories":[{"ic_id":"100118","ic_disp_val":"camp 1","ic_sub":0},{"ic_id":"100119","ic_disp_val":"camp 2","ic_sub":0},{"ic_id":"100120","ic_disp_val":"camp 3","ic_sub":0}]}]},{"ic_id":"100002","ic_disp_val":"Campaigns / Products","ic_sub":1,"ic_sub_categories":[{"ic_id":"100021","ic_disp_val":"cxtest","ic_sub":1,"ic_sub_categories":[{"ic_id":"100118","ic_disp_val":"camp 1","ic_sub":0},{"ic_id":"100119","ic_disp_val":"camp 2","ic_sub":0},{"ic_id":"100120","ic_disp_val":"camp 3","ic_sub":0}]}]}]};
var htmlBuilder='';
$.each(myJSONCategories.categories, function(inx, content) {
if(inx==0)
{
htmlBuilder +='[*]'+content.ic_disp_val;
}else{
htmlBuilder +=''+content.ic_disp_val;
}
if (content.ic_sub==1)
{
$.each(content.ic_sub_categories, function(inx1, cnt_sub1)
{
len1=content.ic_sub_categories.length-1;
if(inx1==0)
{
htmlBuilder += '
- '+cnt_sub1.ic_disp_val;
}else
{
htmlBuilder += ' - '+cnt_sub1.ic_disp_val;
}
if (cnt_sub1.ic_sub==1)
{
$.each(cnt_sub1.ic_sub_categories, function(inx2, cnt_sub2)
{
len2=cnt_sub1.ic_sub_categories.length-1;
if(inx2==0)
{
htmlBuilder += ''+cnt_sub2.ic_disp_val;
}else
{
htmlBuilder += ' - '+cnt_sub2.ic_disp_val;
}
if(inx2==len2)
{
htmlBuilder +='
}
});
}
if(inx1==len1)
{
htmlBuilder +='';
}
});
}
htmlBuilder +=''; //Categories End
});
$( "#expList").html(htmlBuilder);
prepareList();
});
html-код
Подробнее здесь: https://stackoverflow.com/questions/276 ... and-jquery