2012-05-28 13 views
6

Manchmal verwende ich jquery, um meine CSS zu testen. Und oft werde ich einen einfachen Wähler (im Chrome Web Developer-Konsole) verwendeJQuery CSS Selector e.fn.e.init

ich so etwas wie $('.topclass div') geben würde und zurück

e.fn.e.init[125] 

als JavaScript-object enthalten Knoten erhalten. (Normalerweise ist es ein ziemlich komplexer Selektor, aber manchmal ist es einfach).

Warum bekomme ich das? Bedeutet es, dass ein Tag fehlt oder mein Selektor falsch ist?

Edit: Die html grundsätzlich divs verschachtelt ist (es könnte sein, weil seine Kinder seine divs zu bekommen?)

Antwort

5

Es bedeutet, dass Ihre Auswahl zu viele Übereinstimmungen enthält, und die Entwickler-Tools verkürzen ihre Darstellung in der Konsole.

Versuchen Sie dies in der Konsole:

var a = [] 
for (var i = 0; i < 10; i++) { a.push('foobar'); } 

Wenn Sie versuchen, a zu inspizieren, Sie ["foobar", "foobar", "foobar", "foobar", "foobar", "foobar", "foobar", "foobar", "foobar", "foobar"] zu sehen. Nun fügen Sie einige weitere Elemente:

for (var i = 0; i < 100; i++) { a.push('foobar'); } 

Nun, wenn Sie versuchen, es zu kontrollieren, werden Sie Array[110] sehen.

Bedeutet nicht automatisch, dass Ihr Selektor falsch ist, aber wenn Sie weniger Elemente erwarten, ist es möglicherweise falsch.

+0

Ja, ich sehe ich habe es in $ ('div') geändert und eine noch höhere Nummer bekommen, also muss es so sein. Mein Wähler ist dann eindeutig falsch – Akshat