Verwenden Sie Variablen im Dokument.querySelector
Wenn ich:
<div class="test" data-name="Paul" >
und
var name = "Paul";
Kann ich document.querySelector
, so etwas zu tun?
document.querySelector("[data-name=name]");
Funktioniert das nicht. Was muss ich tun?
- Uhhhhh...
"[data-name="+name+"]"
vielleicht? - das ist keine variable, das ist ein string-literal.
document.querySelector('.test')
oderdocument.getElementsByClassName('test')[0]
wenn Sie eine Klasse haben, warum würden Sie wollen, zu verwenden, eine unkonventionelle Art und Weise?- Kein Mensch, es gibt eine Menge von Elementen mit der Klasse "test", ich habe wählen Sie mit dem data-name
- Wiedereröffnung, weil die Flucht CSS-Bezeichnern ist nicht abgedeckt durch die andere Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun, aber Sie müssen verwenden die
CSS.escape()
- Funktion um sicherzustellen das der Wert richtig ist, codiert für die Verwendung in einer CSS-expression.ES2015:
Wenn Sie nicht
CSS.escape(...)
dann bestimmte Werte vonname
könnte Ihr code einen Fehler auslösen, statt.Wenn Sie eine Ausrichtung auf eine browser, die nicht nativ unterstützen
CSS.escape()
die Sie verwenden können,diese polyfill von Mathias Bynens.Müssen Sie zum verketten von strings, wie:
document.querySelector("[data-name=" + name + "]");
Beispiel:
(Siehe @Jeremy Bank Antwort für eine viel bessere Antwort, tho)
JS:
HTML:
name
ist ein CSS-Bezeichner.