[英]JQuery to find LI by text and UL by Class
我正在使用SharePoint 2013中的列表,該列表在鼠標懸停時動態創建無序列表(對於熟悉SharePoint的人員,列表項ECB)。
給定的類名的末尾添加了空格,每個菜單項增加了一個空格。 我不確定這是否會影響jquery中的類屬性值,所以這就是為什么我使用以符號開頭的原因。
我需要隱藏幾個菜單項,並且在調試中沒有收到警報,因此我認為語法已關閉。
我正在使用這個:
if($('ul[class^="ms-core-menu-list"] li[text="View Item"]') ! == null) {
alert('F');
} else {
alert('no F');
}
我沒有收到警報,所以我的語法錯誤並且需要幫助,或者在執行此代碼時未創建菜單項,在這種情況下,我想知道如何使用jquery來獲取這些菜單項我無法在我的環境中部署代碼。 過去幾天,我看了很多博客,但沒有什么建議對我有用。
謝謝
如果您嘗試查找頁面中是否包含帶有文本“ View Item”的li
標記,這些li
標記是ul
標記子類的“ ms-core-menu-list”類,則可以使用以下選擇器:
$('li:contains("View Item")', $('ul.ms-core-menu-list')).length;
在您的示例中:
if($('li:contains("View Item")', $('ul.ms-core-menu-list')).length) {
alert('F');
} else {
alert('no F');
}
用這個 :
if($('ul.ms-core-menu-list li[text="View Item"]').length==0)
...
請注意,JQuery始終返回不為null的JQuery對象。
關於jQuery選擇器,要記住的是它們將始終返回一個對象。 即使你沒有找到任何東西,你還在給jQuery的API調用類的東西.hide()
.show()
等你不會得到一個錯誤,如果調用jQuery的時候你沒有選擇任何東西方法,您將沒有選擇任何要采取行動的電話。
如果選擇了任何元素,您可以做的推斷是通過像對待psuedo數組一樣對待它-您可以使用.length
。
就你而言
if ($('ul.ms-core-menu-list li[text="View Item"]').length > 0) {
alert('F');
} else {
alert('no F');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.