我正在使用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%
赞。赞。
还有其他方法可以进行搜索吗?
答案 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))
即使返回一个数组也应该完成工作。