Gibt es eine getElementsByTagName() like-Funktion für javascript-string-Variablen?
Ich kann die getElementsByTagName () - Funktion, um eine Auflistung der Elemente von ein element in einer Webseite.
Ich würde gerne in der Lage sein zu verwenden, eine ähnliche Funktion auf den Inhalt einer javascript string-variable, anstatt den Inhalt eines DOM-Elements.
Wie mache ich das?
BEARBEITEN
Ich kann dies tun, indem Sie ein element auf der fly.
var myElement = new Element('div');
myElement.innerHTML = "<strong>hello</strong><em>there</em><strong>hot stuff</strong>";
var emCollection = myElement.getElementsByTagName('em');
alert(emCollection.length); //This gives 1
Aber das erstellen eines Elements auf der fly für die Bequemlichkeit der Verwendung der getElementsByTagName() Funktion scheint einfach nicht richtig und funktioniert nicht mit Elemente in Internet Explorer.
- Das heißt, Sie suchen möchten nach text in einem string?
- Ja. Ich möchte nur nicht, dass zum erstellen eines regex Wald, wenn eine alternative Funktion verfügbar ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Injektion der string in DOM, als Sie gezeigt haben, ist die einfachste, zuverlässigste Weg, dies zu tun. Wenn Sie arbeiten auf eine Zeichenfolge, die Sie haben zu berücksichtigen, alle möglichen Flucht-Szenarien, die machen würde, etwas, das sieht wie ein tag eigentlich nicht werden ein tag.
Zum Beispiel, Sie haben könnte,
in Ihrem markup - wenn Sie behandeln es als eine Zeichenfolge, die Sie denken, Sie haben eine
<em>
tag dort, aber in Wirklichkeit, Sie haben nur zwei-Knopf-tags.Injektion in den DOM über
innerHTML
Sie sind unter Ausnutzung der browser die integrierten HTML-parser, der ist verdammt schnell. Das gleiche tun über reguläre Ausdruck wird sein ein Schmerz, und der Browser nicht generell eine DOM-ähnliche Funktionalität für die Suche nach Elementen innerhalb von Zeichenfolgen.Eine andere Sache, die Sie versuchen könnte, wäre das Parsen der string als XML, aber ich vermute, dies wäre schwieriger und langsamer als die DOM-injection-Methode.
HTML in einem string ist nichts besonderes. Es ist nur der text in einer Zeichenfolge. Es muss analysiert werden, in einen Baum für Sie nützlich zu sein. Dies ist der Grund, warum Sie brauchen, um ein element erstellen, dann rufen Sie
getElementsByTagName
drauf, als Sie zeigen in Ihrem Beispiel.