Ich versuche zu ermitteln, ob eine Zeichenfolge ein Wort aus einem Array enthält, indem Sie die inArray
-Funktion von jQuery verwenden, die hier angezeigt wird Ссылка
In meinem Beispiel unten sollte es zweimal 'Hallo' an die Konsole drucken, da das Wort 'Hallo' zweimal in der Zeichenkette ist und im Array ist, tut es aber nicht.
Ändere inArray
function mit array.some(text => itag.textContent.includes(text))
.
Deklarieren Sie alle Variablen über var or const or let
.
Anstelle von innerHTML
verwenden textContent
. Dies wird nicht versuchen, den Inhalt zu analysieren
und wird schneller arbeiten.
Sie überprüfen, ob sich innerHTML im Array befindet oder nicht.
Eigentlich sollten Sie prüfen, ob der innere HTML-Code aus einem Array-Element besteht.
Wenn Sie also die obige Anweisung in Code umwandeln, sollte es
sein
Einfachere Vorgehensweise ist eine Schleife über das Wörter-Array und verwenden Sie :contains
selector
Nicht wirklich eine Antwort, sondern eine Erweiterung der Antwort @SurenSprayan mit weiteren Verbesserungen Ihres Codes.
Anstatt sich mit diesem verschachtelten getElementsByTagName
und getElementsByClassName
zu befassen, können Sie dies als einen einzigen CSS-Selektor schreiben, der auf die Knoten zielt: document.querySelectorAll('.here i:first-of-type');
Und innerHTML
und textContent
sind beide Getter, die den Wert beim Abrufen des DOMs erzeugen. Speichern Sie den Wert also einmal in einer Variablen, und laden Sie ihn dann in einer Schleife, in der er immer wieder neu erstellt werden muss. Nun, es sei denn, der Wert könnte sich geändert haben.
Der eleganteste Weg, um es zu finden, ist offensichtlich eine RegExp
%Vor%Tags und Links javascript html arrays jquery