2016-03-18 15 views
0

Der Versuch, Jquery dazu zu bringen, eine Suche nach einer Zeichenkette auszuführen, die aus einer Kombination von zwei Variablen geladen wird.Jquery sucht ein Element nach zwei Zeichenkettensätzen

Hier ist mehr Code für mehr Kontext. Ziel dieses Codes ist die Suche in der SharePoint-Tabelle nach einem Wert, der durch Drücken einer Schaltfläche angegeben wird, sowie nach einem Wert, den der Benutzer optional eingeben kann. Der Benutzer kann suchen, indem er entweder nur die Sucheingabe (txt-Variable) oder die Schaltflächen verwendet.

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

Enthält für exakte Übereinstimmung mit dem String aussehen würde. Das ist es, was du erreichen willst? – DinoMyte

+0

@DinoMyte Nein. Nicht eine exakte Übereinstimmung. Wäre der richtige Weg "wie" zu sein? –

Antwort

0

Sie vermissen ein ‚+‘ auf der ersten Zeile direkt vor der txt-Variable:

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

Da Sie für entweder der Text Vorkommen suchen, müssen Sie 2 separate :contains definieren Selektoren.

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

Beispiel: https://jsfiddle.net/uyk0kopq/2/

+0

Danke. Das hat nicht ganz so funktioniert, wie ich es für meine Anwendung wollte. Es befindet sich in einer SharePoint-Tabelle und soll eine ganze Zeile basierend auf dieser Abfrage mit den angegebenen Strings zurückgeben. Irgendwelche Ideen? –

+0

'contains' wird für String-Lookups verwendet. Sind txt, ButtonValue HTML-Elemente in der tr? – DinoMyte

+0

Ja, das sind sie. Die oben angegebene Abfrage funktioniert ohne die Variable 'ButtonValue'. Ich habe Probleme, die zusätzliche Bedingung von 'ButtonValue' zur Abfrage hinzuzufügen. –

Verwandte Themen