簡體   English   中英

jQuery按文本查找LI並按類查找UL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM