Javascript 检查无序列表是否包含特定列表项

Javascript 检查无序列表是否包含特定列表项,javascript,jquery,html,search,Javascript,Jquery,Html,Search,例如,我有一个这样的列表 <ul id='root'> <li> <a> Item0 </a> </li> <li> <a> Item1 </a> </li> <li> <a> Item2X </a> <ul> <li> <a> Ite

例如,我有一个这样的列表

<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>

  • 项目0
  • 项目1
  • 项目2X
    • 项目2.0
  • 并希望检查根目录是否包含以下项

    <li> <a> Item2.0</a> </li>
    
  • 项目2.0
  • 为了便于比较,我们可以使用jquery对列表项的文本值进行比较。解决上述问题的好方法是什么?

    使用jQuery:

    使用jQuery:


    您可以使用
    :has
    :contains

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

    您可以使用
    :has
    :contains

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

    非常感谢,之前使用了带有一些逻辑的.find方法,但认为应该有一个更简单的解决方案,在比较时可以忽略文本中的空格填充。例如,根元素可能包含并希望在使用目标节点时将其作为匹配项。希望这不是不使用正则表达式。如果您只使用
    contains(“Item2.0”)
    它会找到
    以及
    。非常感谢,以前使用了带有一些逻辑的.find方法,但认为应该有一个更简单的解决方案。在比较时,有一种方法可以忽略文本中的空格填充。例如,根元素可能包含并希望在使用目标节点时将其作为匹配项。希望这不是不使用正则表达式。如果只使用
    contains(“Item2.0”)
    它将找到
    以及