【问题标题】:Jquery: How to target the parent ul and count the li's held?Jquery:如何定位父 ul 并计算 li 的持有量?
【发布时间】:2010-04-24 01:46:01
【问题描述】:

我正在使用 jstree 构建树形菜单。
当您在树中选择一个项目时,右侧的 div 会显示某些信息。信息可以删除。
当它被删除时,我会从树中删除该项目。
问题是当从 ul 中删除最后一个 li 时,我需要删除 ul 并从父 li 中删除“open”和“close”类并添加“leaf”类。
我很难以 ul 为目标,反过来又以父 li 为目标。 我必须使用“clicked”类作为起始参考。

这是树的 html:

<li id="447" class="open">
     <a href="#"><ins>&nbsp;</ins>ZigBee Remote Pairing-D</a>
     <ul>
         <li id="470" class="leaf last clicked">
               <a href="#"><ins>&nbsp;</ins>RCA TV2 - Audio Quality-F</a>
         </li>
     </ul>
 </li>

这里是 jquery:

var numLi = $(".clicked").parent("ul:first > li").size();//get number of li in ul             
if (numLi == 1){
    $(".clicked").parent("ul:first").parent("li:first").removeClass().addClass("leaf");
}
$(".clicked").parent("li:first").remove();//remove the list item from the tree

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这样的事情应该可以工作:

    var clickedLi = $('.clicked').parent('li');
    var parentUlOfClickedLi = clickedLi.parent('ul');
    if (parentUlOfClickedLi.children('li').length === 1) {
        parentUlOfClickedLi.parent('li')
            .removeClass('open close')
            .addClass('leaf');
    }
    clickedLi.remove();
    

    【讨论】:

    • 我发誓我试过这个,也许我的语法错误。哦,非常感谢,这解决了我的问题。你摇滚!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多