2013-01-09 68 views
0

比如我有這樣檢查,如果一個無序列表包含特定列表項

<ul id='root'> 
    <li> <a> Item0 </a> </li> 
    <li> <a> Item1 </a> </li> 
    <li> 
     <a> Item2X </a> 
     <ul> 
      <li> <a> Item2.0 </a> </li> 
     </ul> 
    </li> 
</ul> 

列表,並要檢查,如果根包含以下項目

<li> <a> Item2.0</a> </li> 

我們可以使用jQuery的列表項目的文本值以便比較。什麼是解決上述問題的好方法?

+1

而你的嘗試是? – Alexander

回答

4

使用jQuery contains

var element = $('#root a:contains("Item2.0")'); 

if (element.length > 0) { 
    // anchor was found containing "Item2.0" text 
} else { 
    // anchor was not found containing "Item2.0" text 
} 
+0

真棒謝謝,以前用一些邏輯使用.find方法,但認爲應該有一個更簡單的解決方案 – dchhetri

+0

有沒有辦法在比較時忽略文本中的空白填充。例如,根元素可能包含<「Item2.0」>,並且在使用目標節點<"Item2.0">時需要將其作爲匹配項。希望明確 – dchhetri

+0

不是沒有使用正則表達式。如果你只是使用'contains(「Item2.0」)'它會發現'<"Item2.0">'以及'<" Item2.0 ">'。 – jbabey

1

你可以使用:has:contains

var hasItem = !!$("#root:has(a:contains(Item2.0))").length; 
相關問題