所以有这棵树。它是使用PHP从MySQL数据库编译的。 问题是我想找到所有没有UL的LI和更多的LI ....
示例:http://i.stack.imgur.com/Pet8Z.jpg
在示例中,我标记了应该使用jquery选择的LI,因为他们没有任何孩子,这就是我想要的。
基本上它只是一个由类别组成的树,但如果最深的类别没有任何子项,则应将其视为项目,我希望jquery找到那些没有任何子项的项目。
这是整棵树:http://jsfiddle.net/trueskillz/qnRpj/1/
我可以做这样的事情(下面的代码)并检查它是否有孩子,然后让它的背景为红色(例如),这就是我如何找到'项目'而不是'类别',但那里必须比这更简单....
$("#parttree ul").each(function(){
$(this).find("li").each(function(){
$(this).find("ul").each(function(){
$(this).find("ul").each(function(){
$(this).css("background-color","red");
});
});
});
});
这不是一个想找到这个列表中的项目的方式......所以我希望有一个更简单的方法......
答案 0 :(得分:3)
有几个选择:
var $leaves = $('#parttree li').filter(function() {
return !$(this).has('ul');
});
var $leaves = $('#parttree li:not(:has(ul))');
var $leaves = $('#parttree li').filter(":not(:has(ul))");
var $leaves = $('#parttree li').not(":has(ul)");
答案 1 :(得分:0)
您的列表结构稍微偏离了一点。我建议尝试在此组织:http://tools.arantius.com/tabifier
您也不需要jQuery来执行此操作。你可以使用CSS。
#parttree li:last-child{
background:red;}
但是只要删除你所拥有的其中一个,我就能得到一个近距离的比赛。 http://jsfiddle.net/gha8V/
我会在wordpress(或任何所见即所得)的可视化编辑器中写出ul,点击文本,复制它,然后用上面的tabifier工具最终组织它们html。
希望这有帮助。