【问题标题】:jQuery text matchjQuery 文本匹配
【发布时间】:2009-12-10 20:50:19
【问题描述】:

我有一个带有文本的锚标记,我想检查给定的 var 是否与字符串完全匹配。

这可行,但我想使用包含以外的其他内容,因为如果包含给定字符串,它将匹配两个元素。我希望它完全匹配。

有什么想法吗?

function test(submenu){
$('a:contains("' + submenu + '")', 'ul.subMenu li').css('font-weight', 'bold');
}

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您可以使用.filter() 函数而不是:contains 过滤器将自定义过滤器应用于您的选择器结果集。

    在这种情况下,应用自定义过滤器来查找完全匹配的文本。比如:

    $('a').filter( function (index) {
        return $(this).text() == submenu;
    })
      .css('font-weight', 'bold');
    

    【讨论】:

    • 如果边界空白需要被忽略,只需调整如下:$.trim($(this).text()) == submenu
    【解决方案2】:

    这是你要找的吗:

    function test(submenu)
    {
       if ($("ul.submenu li a").text() == submenu)
       { 
          // do whatever here 
       }
    }
    

    但是,我不确定您的意思是什么,“这可行,但我想使用包含以外的其他内容,因为如果包含给定字符串,它将匹配两个元素。我希望它完全匹配。 "

    【讨论】:

    • 您可能希望将= 替换为==。 ;)
    • 如果 submenu = 'News' 那么它将匹配带有文本 'News' 和 'Testing News' 的链接,因此将 css 应用于两者。
    • 现在更正了,谢谢乔丹。 @gmcalab,womp 的这段代码和上面的(以及更好的代码)将进行精确匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多