Können Sie mir bitte sagen, ob es eine DOM-API gibt, die nach einem Element mit einem bestimmten Attributnamen und Attributwert sucht:
Etwas wie:
doc.findElementByAttribute("myAttribute", "aValue");
javascript
dom
Michael
quelle
quelle
Antworten:
Update: In den letzten Jahren hat sich die Landschaft drastisch verändert. Sie können jetzt zuverlässig verwenden
querySelector
undquerySelectorAll
, siehe Wojteks Antwort, wie dies zu tun ist.Es ist jetzt keine jQuery-Abhängigkeit erforderlich. Wenn Sie jQuery verwenden, großartig ... wenn Sie es nicht sind, müssen Sie sich nicht mehr nur darauf verlassen, Elemente nach Attributen auszuwählen.
Es gibt keine sehr kurze Möglichkeit, dies in Vanille-Javascript zu tun, aber es gibt einige Lösungen.
Sie tun so etwas, indem Sie Elemente durchlaufen und das Attribut überprüfen
Wenn eine Bibliothek wie jQuery eine Option ist, können Sie dies etwas einfacher tun:
Wenn der Wert kein gültiger CSS-Bezeichner ist (er enthält Leerzeichen oder Satzzeichen usw.), benötigen Sie Anführungszeichen um den Wert (sie können einfach oder doppelt sein):
Sie können auch tun
start-with
,ends-with
,contains
, etc ... gibt es mehrere Optionen für das Attribut Selektor .quelle
Moderne Browser unterstützen native,
querySelectorAll
sodass Sie Folgendes tun können:https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll
Details zur Browserkompatibilität:
Sie können jQuery verwenden, um veraltete Browser (IE9 und älter) zu unterstützen:
quelle
SyntaxError: An invalid or illegal string was specified
'[data-foo="value"]'
Wir können die Attributauswahl in DOM mithilfe von
document.querySelector()
unddocument.querySelectorAll()
Methoden verwenden.für deine:
und mit
querySlectorAll()
:In
querySelector()
undquerySelectorAll()
Methoden können wir Objekte auswählen, wie wir sie in "CSS" auswählen.Weitere Informationen zu "CSS" -Attributselektoren finden Sie unter https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
quelle
ps Wenn Sie den genauen Elementtyp kennen, fügen Sie den 3. Parameter hinzu (dh
div, a, p ...etc...
):Definieren Sie zunächst diese Funktion:
ps aktualisiert pro Kommentar Empfehlungen.
quelle
document.querySelectorAll('[data-foo="value"]');
wie von @Wojtek Kruszewski auf akzeptierten Markisen vorgeschlagen.Hier ist ein Beispiel: So suchen Sie Bilder in einem Dokument nach dem src-Attribut:
quelle
Sie könnten getAttribute verwenden:
https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute
quelle
p
Element auswählen , ohneid
oder allep
im DOM (und Testattributen) zu verwendenVerwenden Sie Abfrageselektoren, Beispiele:
input[name]
Gibt Elemente mitname
Eigenschaft ein.[id|=view]
Elemente mit ID, die mit beginnenview-
.[class~=button]
Elemente mit derbutton
Klasse.quelle