我正在尝试创建一个“jquery搜索功能”,我希望能够使用多个单词对结果进行排序。
有人可以告诉我如何让它发挥作用吗?
这就是我得到的:
$(document).ready(function(){
$('.qid').keyup(function() {
var keyword = $(this).val().toLowerCase().split(" ");
$(".q").removeClass('show');
$(".q:contains('"+ keyword[0] +"'):contains('"+ keyword[1] +"'):contains('"+ keyword[2] +"'):contains('"+ keyword[3] +"')").addClass('show');
if ($('.qid').val() == '')
{
$('.q').removeClass('show');
}
});
});
答案 0 :(得分:2)
请阅读:jQuery :contains selector to search for multiple strings
我认为这会引起你对“包含”的疑问。
答案 1 :(得分:0)
您可以通过用contains替换空格来生成jquery选择器字符串 试试这个:
<script type="text/javascript">
$(document).ready(function(){
$('.qid').keyup(function() {
var keyword = $(this).val().replace(/\s+/g, " ").replace(/\s+$|^\s+/g, "");
var containsString = keyword;
$(".q").removeClass('show');
containsString = ".q:contains("+containsString+")".replace(".q:contains()","");
console.log(containsString);
$(containsString).addClass('show');
if ($('.qid').val() == ''){
$('.q').removeClass('show');
}
});
});
</script>
测试:
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom Cybernate Sinclair</div>
<div>J. Ohn</div>
<script>
var baseText = "John Cybernate"
var containsString = baseText.replace(" ", " ,div:contains(");
$("div:contains(" + containsString + ")").css("text-decoration", "underline");
</script>
检查帖子@:http://www.jsfiddle.net/RUF4P/4/(输入Lorem Ipsum)