jQuery选择器,用于仅将+符号附加到span类的第一个实例

时间:2016-11-22 13:22:16

标签: jquery html css sharepoint

我在SharePoint中有一个手风琴导航快速启动。然而,手风琴效果很好,我试图在SharePoint的顶级ul标题中添加一个图标。不幸的是,所有ulli无论级别都有menu-item-text.的范围类别我不能为我的生活找出用于附加图标的选择器顶级标题,而不是位于子菜单下的后续列表项。

这是jQuery。

var parent = $("#zz12_V4QuickLaunchMenu > ul > li:has('ul')");
parent.find("li span.menu-item-text:first").append("<b>+</b>");
parent.closest("li").find("> ul").hide();
parent.click(function(event) {
    event.preventDefault();
    var childUL = $(this).closest("li").find("> ul");
    var isVisible = childUL.is(":visible");
    if (isVisible) {
        childUL.slideUp();
    } else {
        childUL.slideDown();
    }
});
但是,可以通过下面的jsfiddle链接查看html。 [它详尽无遗]。

ETA:如果我取出find("li span.menu-item-text:first")部分,则脚本按预期工作。但是,如果扩展UL,则+移动到UL的底部。我试图通过某种方式将+放在标题所包含的<span>中来阻止它。

请参阅我的jsfiddle:https://jsfiddle.net/m30nar2p/2/

1 个答案:

答案 0 :(得分:1)

使用:first-child Selector代替:first Selector

  

虽然:first只匹配一个元素,但:first-child选择器可以匹配多个:每个父元素一个。

parent.find("li span.menu-item-text:first-child").append("<b>+</b>");

Updated Fiddle