2016-03-18 111 views
0

試圖讓jquery針對從兩個變量的組合中加載的字符串運行搜索。jquery在一個元素中搜索兩組字符串

下面是更多上下文的更多代碼。 此代碼的目標是在SharePoint表中搜索通過按按鈕給出的值以及用戶可以選擇鍵入的值。用戶可以只使用搜索輸入(txt變量)或按鈕進行搜索。

var ButtonValue = null 
$("#button1").click(function(){ 


      $("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ5").find("tr.ms-itmhover:Contains('Faucets')").show(); 

      $("#WebPartWPQ6").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ6").find("tr.ms-itmhover:Contains('Faucets')").show(); 

      $("#WebPartWPQ4").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ4").find("tr.ms-itmhover:Contains('Faucets')").show(); 

      $("#WebPartWPQ7").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ7").find("tr.ms-itmhover:Contains('Faucets')").show(); 

      $("#WebPartWPQ2").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ2").find("tr.ms-itmhover:Contains('Faucets')").show(); 

      $("#WebPartWPQ8").find("tr.ms-itmhover:not(:Contains('Faucets'))").hide(); 
      $("#WebPartWPQ8").find("tr.ms-itmhover:Contains('Faucets')").show() 
      ButtonValue = "Faucets" 

      }); 

$("input.search").change(function() { 
       var txt = $("input.search").val(); 



     if (txt) { 
       //alert("VN : " + VN); 
       //alert(".change() called"); 

      //Vendor List 
      $("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ5").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show(); 

      //Manufacturer Reps 
      // Logic to see search value is numeric then search using the company name 
      $("#WebPartWPQ6").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ6").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show(); 

      //Vendor Contact List 
      $("#WebPartWPQ4").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ4").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show(); 

      //Vendor Document List 
      $("#WebPartWPQ7").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ7").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show(); 

      // Vendor Details 
      $("#WebPartWPQ2").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ2").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+")").show(); 

      // Product Lines 
      $("#WebPartWPQ8").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
      $("#WebPartWPQ8").find("tr.ms-itmhover:Contains("+txt+ "+ButtonValue+"")").show(); 

      } else { 

       $("#WebPartWPQ6").find("tr.ms-itmhover").show(); 
       $("#WebPartWPQ7").find("tr.ms-itmhover").show(); 
       $("#WebPartWPQ4").find("tr.ms-itmhover").show(); 
       $("#WebPartWPQ8").find("tr.ms-itmhover").show(); 
       $("#WebPartWPQ2").find("tr.ms-itmhover").show(); 
       $("#WebPartWPQ5").find("tr.ms-itmhover").show();   
      } 
      }).keyup(function(){$(this).change(); 
     }); 


$("#button1").click(function() { 
     $.ajax('/forward'); 
     $('button1').removeClass('active'); 
     $(this).addClass('active'); 
}); 
+0

包含將尋找精確匹配的字符串。這就是你想要達到的目標? – DinoMyte

+0

@DinoMyte Nope。不完全匹配。正確的做法是「喜歡」嗎? –

回答

0

你把txt變量之前,就在您的第一行缺少一個「+」:

$("#WebPartWPQ5").find("tr.ms-itmhover:not(:Contains("+txt+" "+ButtonValue+"))").hide(); 
$("#WebPartWPQ5").find("tr.ms-itmhover:Contains("+txt+" "+ButtonValue+"))").show(); 
0

既然你正在尋找的文本出現的任何一個,你需要定義2個獨立的:contains選擇。

$("#WebPartWPQ5").find("tr.ms-itmhover td").hide(); 
$("#WebPartWPQ5 tr.ms-itmhover td:contains("+txt+"), #WebPartWPQ5 tr.ms-itmhover td:contains("+ButtonValue+")").show(); 

例子:https://jsfiddle.net/uyk0kopq/2/

+0

謝謝。這並沒有完全工作,我想它爲我的應用程序..它在一個SharePoint表,它應該返回一個基於此查詢具有指定的字符串整行。有任何想法嗎? –

+0

'contains'用於字符串查找。 tr中是否有txt,ButtonValue html元素? – DinoMyte

+0

是的,他們是。我上面發佈的查詢確實沒有'ButtonValue'變量。我無法將「ButtonValue」的附加條件添加到查詢中。 –