我正在修改Instant JQuery Search,以便在包含多列的sharepoint列表中使用。
我几乎让这个工作正常,但是在使用AND条件和OR条件方面遇到了麻烦。
搜索框看起来像这样,
User1 OR User2,Customer
这就是我希望用户搜索的方式..这意味着他们可以搜索User1或User2 AND Customer。这应该是非常直接的,这就是我认为它应该看起来的样子。但它不是在客户上做AND运算符。
tr.ms-itmhover:Contains('User1'),tr.ms-itmhover:Contains('User2'):tr.ms-itmhover:Contains('Customer')
下面是我的javascript:
var txt = $("input.search").val().split(',');
var str = "";
var strnot = "";
if (txt)
{
for(var i=0;i<txt.length;i++) {
var txt2 = txt[i].split('OR');
if (txt2.length > 1) {
for (var j=0;j<txt2.length;j++) {
if (j==0) {
str += "tr.ms-itmhover:Contains('"+txt2[j].toString().trim() +"')";
}
else {
if (txt2[j].length > 0) {
str += ",tr.ms-itmhover:Contains('"+txt2[j].toString().trim() + "')";
}
}
}
}
else {
if (txt[i].length > 0) {
if (i == 0)
str += "tr.ms-itmhover:Contains('"+txt[i].toString().trim() +"')";
else
str += ":tr.ms-itmhover:Contains('"+txt[i].toString().trim() +"')";
}
}
}
$("#temp").html(str);
//$("#WebPartWPQ2").find(str).hide();
//$("#WebPartWPQ2").find(str).show();
$("#WebPartWPQ2").find("tr.ms-itmhover:not("+str+")").hide();
$("#WebPartWPQ2").find("tr.ms-itmhover"+str+"").show();
}
else
{
$("#WebPartWPQ2").find("tr.ms-itmhover").show();
}