来自span的Jquery搜索字符串无法正常工作

时间:2014-08-05 07:37:45

标签: javascript jquery html

我正在使用JQuery Filter,我在搜索字符串时遇到问题。

以下是我正在使用的搜索功能:

function searchAccoms() {       
    var searchString = $('#searchval').val();
    $('span.acc-head').each(function(){
        var spanString = $(this).text();    
        if(spanString.search(searchString) == 1){
            console.log('found');
        }else{
            console.log('Not Found');
        }       
    });
}

HTML:

<input type="text" placeholder="Search" id="searchval" name="searchval">
<img src="images/icon_search.png" class="search-btn" type="submit" onclick="return searchAccoms();">

场景:我在SPAN标记中有以下文字:

field
field
extra field
field1
field3
field2

示例SPAN:

<span id="18" class="acc-head"> field1</span>

当我搜索&#39; field&#39;在搜索框中它工作正常,但当我搜索&#39; Field&#39;盖帽的第一个字母&#39; F&#39;那它不起作用。我在MySQL中寻找%Field%赞。赞。

还有其他方法可以进行搜索吗?

2 个答案:

答案 0 :(得分:4)

只需将两个字符串设置为小写或大写,以使搜索不区分大小写:

function searchAccoms() {       
    var searchString = $('#searchval').val();

    $('span.acc-head').each(function(){
        var spanString = $(this).text();

        if (spanString.toLowerCase().search(searchString.toLowerCase()) == 1) {
            console.log('found');
        } else {
            console.log('Not Found');
        }       
    });
}

另一种选择是构造一个正则表达式,比如

var searchString = $('#searchval').val();
var regex = new RegExp(searchString, 'i');

...

if(spanString.search(regex) == 1)

但只是使字符串相同的情况似乎更容易

答案 1 :(得分:1)

我猜if(spanString.match(searchString))即使返回一个数组也应该完成工作。