2016-11-22 63 views
0

我在SharePoint中使用了手風琴式導航快速啓動。手風琴很好用,但是,我試圖在SharePoint中向頂級ul標題附加一個圖標。不幸的是,所有的ulli無論級別有沒有跨度類menu-item-text.我不能爲我的生活找出哪個選擇器用於追加頂級標題的圖標,而不是後面的列表項子菜單。將+符號追加到span類的第一個實例的jQuery選擇器

這裏是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(); 
    } 
}); 

但是,html可以通過下面的jsfiddle鏈接查看。 [它是詳盡的]。

ETA:如果我拿出find("li span.menu-item-text:first")部分,腳本按預期工作。然而,如果UL被擴展,則+被移動到UL的底部。我想,以防止通過某種方式把+在同<span>,標題被包裹在

請參閱我的jsfiddle:https://jsfiddle.net/m30nar2p/2/

回答

1

使用:first-child Selector而不是:first Selector

雖然:first比賽只有一個元素,:first-child選擇器可以匹配多個:每個父級一個。

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

Updated Fiddle

+0

感謝,但是這不是我期待的,我已嘗試選擇..我試圖把「+」在頂層鏈接,不在名單子菜單中的項目。正如你所看到的,當所有的UL被碰撞時,沒有+表明ul有其他的鏈接.. – user2004758

+1

@ user2004758,似乎你需要'parent.find(「span.menu-item-text:first」) .append(「+」)' – Satpal

+0

哈哈,這真是超級簡單。非常感謝! – user2004758

相關問題