【问题标题】:Checking if a unordered list contains a specific list item检查无序列表是否包含特定列表项
【发布时间】:2013-01-09 19:46:15
【问题描述】:

例如我有一个这样的列表

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

并想检查root是否包含以下项目

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

我们可以使用 jquery 来比较列表项的文本值,以便于比较。有什么好的方法可以解决上述问题?

【问题讨论】:

    标签: javascript jquery html search


    【解决方案1】:

    使用 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
    }
    

    【讨论】:

    • 太棒了,以前用过 .find 方法有一些逻辑,但认为应该有一个更简单的解决方案
    • 有没有办法在比较时忽略文本中的空格填充。例如,根元素可能包含 并希望在使用目标节点 时将其作为匹配项。希望这很清楚
    • 不能不使用正则表达式。如果您只使用contains("Item2.0"),它将找到&lt;"Item2.0"&gt; 以及&lt;" Item2.0 "&gt;
    【解决方案2】:

    您可以使用:has:contains

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

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2018-01-18
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多