2012-12-21 3 views

Antwort

9

Ja eine schwere-to-Execute nicht Sizzle verwenden möchten, das ist eine richtige Ansatz. Die Selectors Level 3 specification besagt Folgendes:

Attributwerte müssen CSS-Bezeichner oder Zeichenfolgen sein.

Das Beispiel in Ihrer Frage verwendet eine Zeichenfolge als Attributwert. Ein "identifier" wird wie folgt definiert:

In CSS, ... Identifikatoren können nur die Zeichen enthalten [a-zA-Z0-9] und ISO 10646 Zeichen U + 00A0 und höher, und der Bindestrich (-) und der Unterstrich (_); Sie können nicht mit einer Ziffer, zwei Bindestrichen oder einem Bindestrich beginnen, gefolgt von einer Ziffer. Identifiers können auch enthalten Escape-Zeichen und jede 10646 ISO Zeichen als numerischer Code ...

Damit folgt, ist es auch legal ist die Sonderzeichen und lassen Sie die Anführungszeichen zu entkommen:

document.querySelector('input[name=test\\[33\\]]') 
+0

großartig! Danke für die Antwort und für das Melden der Spezifikation – skyline26

+0

@toPeerOrNotToPeer - Gern geschehen, froh, ich könnte helfen :) –

+0

@JamesAllardice gibt es eine Funktion (benutzerdefiniert), um Werte zu entkommen? 'document.querySelector ('[name =' '+ escapeattr (wert) +' ']') danke – skyline26

Verwandte Themen