【问题标题】:js Search String and get matched elementsjs搜索字符串并获取匹配的元素
【发布时间】:2013-01-27 14:10:12
【问题描述】:

我想问一下搜索字符串和获取匹配元素的最佳方法是什么?

//I want to get similar or matched element and the index of it.
//Search key ward 
var key = 'Pap'; 
<ul>
 <li>Papa</li>
 <li>Mama</li>
</ul>

我现在的想法是使用$.each 并匹配每个文本的文本,但我认为这应该是错误的方式。但是,我在网上找不到关于这个问题的任何参考资料。

非常感谢。

【问题讨论】:

    标签: javascript jquery string search match


    【解决方案1】:

    使用:contains 选择器

    $('*:contains("'+key+'"):last')
    

    要找到完全匹配,元素中的整个文本会使用这个

    $.fn.exactMatch = function (key) {
        var p = $(this).find(':contains("' + key + '"):last');
        if (p.text() == key) {
            p.css('background', 'yellow');
        } else {
            //Not exact match function if wanted
        }
    }
    

    要使用此功能,请执行此操作

    $(el).exactMatch(key);
    

    【讨论】:

    • :last 似乎是多余的,除非我遗漏了什么?
    • 当你使用 contains 时,你会得到你想要选择的元素的所有父元素,所以我使用 last 来获取包含“key”的确切元素
    • @Anton:哦,有道理,是的,没想到。 +1。
    • 我累了 $(el.selector + ':contains("'+ key +'"):last') 和 $(el).find('*:contains("'+ key + '"):last'),两者都不起作用,我错过了什么?
    • 如果你的意思是 var key = "Hello world" 那么是的,但是键必须与元素字符串完全匹配
    猜你喜欢
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多