2016-05-23 15 views
0

Ich erhalte eine Liste von Elementen in Klassen und ich möchte jede Klasse herausfiltern, die kein bestimmtes Wort in innerHTML enthält. Zurzeit habe ich es geschafft, die Wörter herauszufiltern, aber ich kann nicht die ganze Zeichenfolge erhalten, nur ein Teil davon. Hier ist, was ich habe:Wie filtere ich Elemente, die eine Zeichenfolge mit einer AJAX-Anfrage enthalten?

htmlData = $(htmlData).find(".Description").html("Fruit"); 

All dies tut, ist return „FruitFruitFruitFruitFruit ...“, wenn Ich mag würde die gesamte Zeichenfolge zu erhalten, die das Wort in ist Wer weiß, wie es zu tun.? Vielen Dank.

+0

IT an Ihre Zeichenfolge anhängen in, ersetzen nicht ** $ (Htmldata) .find (“. Beschreibung "). Anhängen (" Obst "); ** –

Antwort

0

Umbrechen Sie die Zuweisung in ein if, in dem Sie prüfen, ob die Zeichenfolge im Text enthalten ist.

if($(htmlData).find(".Description").text().indexOf("Fruit") === -1){ 
    htmlData = $(htmlData).find(".Description").html(); 
} 

die indexOf Funktion gibt den Index in der die Zeichenkette zuerst gefunden wurde. Wenn es nicht gefunden wurde, gibt es -1 zurück.

+0

Nicht genau was ich suchte, aber ich hätte genauer sein sollen. Vielen Dank! –

0

Ich hoffe, dass das ist, was Sie gemeint ..

var arr = []; 
$.each($(htmlData).find(".Description"), function(_, jqElem){ 
    var content = jqElem.html(); 
    if (content.indexOf("Fruit") !== -1) { 
     arr.push(content); 
    } 
})