Javascript-Selektoren

8

Wie wählt man DOM-Elemente in Javascript aus? Wie zum Beispiel:

%Vor%

Wie wähle ich nun h1 ? Dies ist nur ein Teil einer größeren Seite, daher kann getElementsByTagName() nicht verwendet werden, da andere möglicherweise ausgewählt werden. Da es später noch weitere h1 's im Dokument geben kann, kann ich den Index (body's) nicht oben anhängen.

Gibt es eine einfache Möglichkeit zu wählen, sagen wir <h1> Tag, das unter dem Klassennamen von desleft ist? Ich kann jQuery oder andere Bibliotheken nicht verwenden.

    
Aaditi Sharma 08.09.2011, 19:50
quelle

6 Antworten

3
%Vor%

Wäre eine Funktion, mit der Sie beginnen können, und dann können Sie nach den DOM-Elementen filtern, die die Klasse haben.

%Vor%

Die Funktion .indexOf gibt -1 zurück, wenn die Nadel nicht im Heuhaufen gefunden wird.

Jetzt lesen Sie Ihre Frage erneut, warum geben Sie nicht einfach die IDs Ihres h1?

DOM-Traversal ist eines der grassierenden Probleme von JavaScript (geben Sie jQuery ein).

Eine einfache getElementById() würde Ihnen Kopfschmerzen ersparen, und ids auf all Ihren h1s wären am Ende viel sauberer als zu versuchen, einen Algorithmus zu formulieren, um sie auf andere Weise auszuwählen.

    
jondavidjohn 08.09.2011, 19:54
quelle
8

Sie können dies verwenden, um zu Ihrem H1 zu gelangen:

%Vor%     
quelle
7

w3.org hat jetzt Selektoren (http://www.w3.org/TR/selectors-api/#examples). Hier sind zwei verschiedene Möglichkeiten, die für mich in Chrome funktionierten. Möglicherweise möchten Sie die Funktion querySelectorAll verwenden, die eine Liste zurückgibt.

%Vor%     
StackRover 13.09.2012 18:39
quelle
7
___ qstntxt ___

Wie wählt man DOM-Elemente in Javascript aus? Wie zum Beispiel:

%Vor%

Wie wähle ich nun querySelectorAll ? Dies ist nur ein Teil einer größeren Seite, daher kann querySelector nicht verwendet werden, da andere möglicherweise ausgewählt werden. Da es später noch weitere #single-header-id 's im Dokument geben kann, kann ich den Index (body's) nicht oben anhängen.

Gibt es eine einfache Möglichkeit zu wählen, sagen wir %code% Tag, das unter dem Klassennamen von %code% ist? Ich kann jQuery oder andere Bibliotheken nicht verwenden.

    
___ answer247233332 ___

Verwenden Sie querySelectorAll

Sie können %code% verwenden:

%Vor%

Dies wird eine NodeList zurückgeben.

oder

Verwenden Sie %code% , um das erste gefundene Element zurückzugeben:

%Vor%

Wird normalerweise mit einem ID-Selektor %code% verwendet.

Hier ist eine Demo

    
___ answer12412684 ___

w3.org hat jetzt Selektoren (http://www.w3.org/TR/selectors-api/#examples). Hier sind zwei verschiedene Möglichkeiten, die für mich in Chrome funktionierten. Möglicherweise möchten Sie die Funktion querySelectorAll verwenden, die eine Liste zurückgibt.

%Vor%     
___ answer7353696 ___
%Vor%

Wäre eine Funktion, mit der Sie beginnen können, und dann können Sie nach den DOM-Elementen filtern, die die Klasse haben.

%Vor%

Die Funktion %code% gibt %code% zurück, wenn die Nadel nicht im Heuhaufen gefunden wird.

Jetzt lesen Sie Ihre Frage erneut, warum geben Sie nicht einfach die IDs Ihres h1?

DOM-Traversal ist eines der grassierenden Probleme von JavaScript (geben Sie jQuery ein).

Eine einfache %code% würde Ihnen Kopfschmerzen ersparen, und ids auf all Ihren h1s wären am Ende viel sauberer als zu versuchen, einen Algorithmus zu formulieren, um sie auf andere Weise auszuwählen.

    
___ qstnhdr ___ Javascript-Selektoren ___ answer7353679 ___

Wenn Sie ein %code% vor das erste Element der Klasse %code% auswählen möchten, können Sie dies immer tun:

%Vor%

Beispiel: Ссылка

%code% muss wegen des leeren Textknotens zwischen den beiden zweimal aufgerufen werden. Aus diesem Grund ist die Verwendung von Bibliotheken für diesen Zweck der beste Weg.

    
___ tag123selector ___ Ein Selektor kann eine Zeichenfolge sein, die einen Methodennamen in der Programmiersprache Objective-C oder Smalltalk oder eine spezielle Art von Switch angibt, der in Computern verwendet wird, um mehrere Zeilen (I / O) mit einer einzelnen Zeile zu verbinden. Bitte verwenden Sie dieses Tag nicht für jQuery / CSS-Selektoren. ___ tag123dom ___ Verwenden Sie dieses Tag bei Fragen zur Interaktion anderer Sprachen mit XML / HTML über das Dokumentobjektmodell. Verwenden Sie es nicht als Abkürzung für HTML, JavaScript oder SAX - verwenden Sie zusätzliche Tags, um sowohl Sprache als auch Markup zu kennzeichnen. ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer26668423 ___
%Vor%
  1. Finden Sie das Element mit className = 'desleft' mit dem Selektor '.desleft'
  2. Zurück zum vorherigen Element (nicht zum vorherigen Knoten!)
___ tag123traversal ___ Traversieren ist die Aktion, bei der alle Elemente in einer Sequenz von Elementen durchlaufen werden. ___ answer7353807 ___

Sie können dies verwenden, um zu Ihrem H1 zu gelangen:

%Vor%     
___
hitautodestruct 13.07.2014 13:46
quelle
1

Wenn Sie ein h1 vor das erste Element der Klasse desleft auswählen möchten, können Sie dies immer tun:

%Vor%

Beispiel: Ссылка

previousSibling muss wegen des leeren Textknotens zwischen den beiden zweimal aufgerufen werden. Aus diesem Grund ist die Verwendung von Bibliotheken für diesen Zweck der beste Weg.

    
Alex Turpin 08.09.2011 19:53
quelle
0
%Vor%
  1. Finden Sie das Element mit className = 'desleft' mit dem Selektor '.desleft'
  2. Zurück zum vorherigen Element (nicht zum vorherigen Knoten!)
Volodymyr Fedorov 31.10.2014 06:03
quelle

Tags und Links