我正试图在JSON中推送无限制儿童的所有(defrule my_rule "comment me"
(object (is-a A)
(ref_to_b ?ref_to_b))
(?ref_to_b
(some_prop_of_b "some_string"))
=>
)
值(例如ul> ul> ul> ul ..)。
所以我这样做但我无法循环ul>li
Subcategories
并示例HTML:
getCategories(elem){
$(elem).children().each(function() {
var el = $(this),
child = $(this).children('ul'),
item = {
Id: el.data('id'),
URL: el.find('a').attr('href'),
Name: el.find('a').text(),
Sort: el.data('sort'),
if (child.length > 0) {
Subcategories: getCategories(child);
}
};
categories.push(item);
});
return categories
}
item['categories'] = getCategories('#categories ul.ui-sortable');
现在我只获得了第一级并尝试了一个没有运气的函数/循环。
任何帮助都将受到高度赞赏!
更新: This is a fiddle我现在所做的事情,但仍然是错误的,子类别= 2x
答案 0 :(得分:0)
不要这样写:$(elem).children()。each(function(){
代替此代码,请尝试:
$(elem).find("ul").each(function() {
});
此选择器将针对该元素
下的所有 ul 运行答案 1 :(得分:0)
感谢帮助我修复了它
function pushULtoJson(elem){
var array = []
$(elem).first().children('li').each(function(i){
var Subcategories = []
var childUL = $(this).find('>ul');
array.push({
Id: $(this).data('id'),
URL: $(this).find('a').attr('href'),
Name: $(this).find('>a').text().replace(/'/g,"’"),
Subcategories:pushULtoJson(childUL)
});
});
return array
}