2016-07-11 24 views
-1

Konsole Protokoll ist unten.kann Element nicht durch ID mit jquery und d3 erhalten, aber mit nativen Code

-> d3.select ("# node1")

< - qa {_Groups: Array [1], _parents: Array [1]}

-> d3.select ("# node1.1")

< - Uncaught DOMException:. Fehler beim ausführen 'querySelector' auf 'Dokument': '# node1.1' ist kein gültiger Selektor (...)

-> $ ("# node1")

< - [sdsdg]

-> $ ("# node1.1")

< - []

-> document.getElementById ("node1")

< - sdsdg

-> document.getElementById ("node1.1")

< - asfas

Element # node1 hat nichts Problem. # node1.1 funktioniert gut mit nativem Javascript aber jquery (3.0.0) und d3 (4.1.1)

Ich weiß nicht warum. könnte ich wissen, was mit # node1.1 passiert ist?

Ich könnte Element Selektor von Chrome Developer Tool kopieren. das Ergebnis ist

Element # node1 -> # node1

Element # node1.1 -> # node1 \ 2e 1

+0

Lesen die Leute überhaupt die Fehlermeldungen? "# node1.1" ist kein gültiger Selektor. (...) "zeigt das Problem eindeutig auf. – Teemu

Antwort

1

Das . Zeichen wird als CSS-Selektor . meta interpretiert -character, also denkt man, dass Sie nach einem Element mit der ID "node1" und der Klasse "1" suchen.

Die jQuery-Code (na ja, Sizzle) lassen Sie zitieren, dass mit einem Backslash:

$("#node1\\.1") 

ich d3 bin nicht sicher.

+2

Gleiche Lösung gilt auch für d3. [Siehe Beispiel] (https://jsfiddle.net/w0gL6gu4/) – meetamit