2016-03-18 7 views
0

Wir haben einen Jquery-Code auf unserer SharePoint-Website, der alle Daten aus einer Tabelle basierend auf Benutzereingaben in einem Textfeld abruft. Wir versuchen, Schaltflächen zu implementieren, die als Filter dienen, um die Suche des Nutzers zu verstärken.Jquery multiple enthält Operatoren mit oder

Ich denke, mein Hauptproblem hier ist, dass ich Probleme mit der Jquery-Vergleichsoperator-Syntax habe. Hier ist die Hauptlinie des Codes, die der Schuldige ist;

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

im Wesentlichen nur der Suche nach es es um den Inhalt abzurufen, die auf den Tasten Wert und der Suchanfrage ähnlich sind. Oder das eine oder andere. Hier ist der Rest des Codes, um die Dinge in den Kontext zu bringen.

Hinweis: In der .click-Funktion habe ich viel Code weggelassen, weil es im Moment nur ein Haufen repetitiver Spaghetti-Code ist. Aber das gibt Ihnen das Wesentliche, wie die Beziehung zwischen den zwei Funktionen funktioniert.

var ButtonValue = "" 
$("#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" 

     }); 

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

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

     //Vendor List 
     $("#WebPartWPQ5").find('tr.ms-itmhover:not(:contains("+txt+"):contains("+ButtonValue+")').hide(); 
     $("#WebPartWPQ5").find('tr.ms-itmhover:contains("+txt+"):contains("+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+"))").hide(); 
     $("#WebPartWPQ6").find("tr.ms-itmhover:Contains("+txt+")").show(); 

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

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

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

     // Product Lines 
     $("#WebPartWPQ8").find("tr.ms-itmhover:not(:Contains("+txt+"))").hide(); 
     $("#WebPartWPQ8").find("tr.ms-itmhover:Contains("+txt+")").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(); 
    }); 

Antwort

0

Ihre Syntax auf diesen Linien sind falsch

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

Wie würde ich dies tun, so dass es sowohl für die txt und ButtonValue Variablen aussieht? Ich glaube, dass es derzeit nach einem sucht, und da ich eine Abfrage habe, die mit allen Werten von der Knopfvariablen zurückkommt, macht sie ihre Suche nicht spezifischer, wenn der Benutzer in die txt Eingabe eintippt. –