我正在修改即时 JQuery 搜索以用于具有多列的共享点列表。
我几乎可以正常工作,但是在使用 AND 条件和 OR 条件时遇到了麻烦。
搜索框看起来像这样,
用户 1 或用户 2,客户
这就是我希望用户搜索的方式......这意味着他们可以搜索 User1 OR 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();
}