jQuery- oder JavaScript-Äquivalent der PHP-Strpos-Funktion zum Suchen von Zeichenfolgen auf einer Seite
Lesezeit: 2 Minuten
Tom
Gibt es eine entsprechende Funktion in JavaScript oder jQuery ähnlich strpos bei PHP?
Ich möchte eine Zeichenfolge in einem Element auf einer Seite finden. Die Zeichenfolge, die ich suche, ist:
td class="SeparateColumn"
Ich möchte etwas, wo ich es so ausführen kann, um zu finden:
if $("anystring")
then do it
Sie verwenden das bereits im Klartext vorhandene Javascript?
– Benutzer395760
20. Oktober 2010 um 13:15 Uhr
Ich verstehe, Sie möchten also eine ganze Seite nach einer Zeichenfolge durchsuchen?
– JAL
20. Oktober 2010 um 13:19 Uhr
Wenn ich versuche, in jQuery zu verwenden, erhalte ich “indexOf is not a function”. Gibt es eine andere Möglichkeit, dies mit Javascript zu tun? ? ? HILFE!
– Brian Patterson
10. Dezember 2011 um 22:42 Uhr
JAL
Ich nehme an, Sie meinen, ob eine Zeichenfolge ein Zeichen enthält, und die Position in der Zeichenfolge – Sie möchten die verwenden indexOf() Methode einer Zeichenfolge in JS. Hier sind die relevante Dokumente.
Okay, Sie möchten also die ganze Seite durchsuchen! Das :contains() Selektor wird das tun. Sehen die jQuery-Dokumentation zum :contains.
Um jedes Element auf der Seite zu durchsuchen, verwenden Sie
var has_string = $('*:contains("search text")');
Wenn Sie jQuery-Elemente zurückbekommen, war die Suche erfolgreich. Zum Beispiel auf dieser Seite
var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.
Natürlich macht die Aufnahme von „Pferderodeo“ in das Beispiel den letzten Teil technisch falsch, aber wir werden uns nicht mit diesem Rätsel befassen.
– JAL
20. Oktober 2010 um 13:32 Uhr
klingt gut; Wie kann ich überprüfen, ob das Element
eine bestimmte Zeichenfolge auf dieser Seite hat
– Tom
20. Oktober 2010 um 13:39 Uhr
@Tom if($('td.SeparateColumn:contains("the string")')){/* do something*/} Sollte es tun.
– JAL
20. Oktober 2010 um 13:50 Uhr
danke, aber das schlägt fehl: if(jQuery(“tr.SeparateRow:contains(‘mycode’)”))
– Tom
20. Oktober 2010 um 13:55 Uhr
@Tom scheitert auf welche Weise? Ein Fehler oder der String wird nicht gefunden? Ach – hast du tr.SeparateRowIch denke du meinst td.SeparateRow.
– JAL
20. Oktober 2010 um 14:17 Uhr
Spudley
Sie brauchen dafür kein jquery – einfaches altes Javascript reicht aus, wenn Sie die verwenden .indexof() Methode.
Wenn Sie jedoch wirklich eine exakte Syntaxübereinstimmung für PHPs strpos() wünschen, würde so etwas wie das hier funktionieren:
function strpos (haystack, needle, offset) {
var i = (haystack+'').indexOf(needle, (offset || 0));
return i === -1 ? false : i;
}
Sie verwenden das bereits im Klartext vorhandene Javascript?
– Benutzer395760
20. Oktober 2010 um 13:15 Uhr
Ich verstehe, Sie möchten also eine ganze Seite nach einer Zeichenfolge durchsuchen?
– JAL
20. Oktober 2010 um 13:19 Uhr
Wenn ich versuche, in jQuery zu verwenden, erhalte ich “indexOf is not a function”. Gibt es eine andere Möglichkeit, dies mit Javascript zu tun? ? ? HILFE!
– Brian Patterson
10. Dezember 2011 um 22:42 Uhr