2013-01-09 45 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; 
相关问题