5 Stimmen

jQuery #id.classname Selektor auf IE7

Ehrlich gesagt, weiß ich nicht einmal, nach welchen Begriffen ich suchen sollte, um ein einigermaßen zielgerichtetes Suchergebnis zu erhalten, also dachte ich, ich hoffe hier auf eine schnelle Antwort. Die Suchanfragen, die ich versucht habe (einschließlich der Fragen von SO), haben dieses spezielle Problem nicht erwähnt.

Jeder Browser in meinem Arsenal versteht den folgenden jQuery-Selektor und meldet die richtige Länge (2):

alert( jQuery('#course-contents.course-sidebar .folder').length );

Aber nicht IE7. Er sagt mir, dass es keine gibt. Auf der anderen Seite dies:

alert( jQuery('.course-sidebar .folder').length );

Ich erhalte ein Ergebnis von 2 an beiden Stellen. Was hat es mit der Kombination auf sich, die dem IE7 Probleme bereitet? Beide Komponenten sind an einigen Stellen erforderlich, daher möchte ich sie nicht einfach ändern. Wenn meine Syntax schief ist, würde ich gerne wissen, warum.

Merci.

6voto

Peter Punkte 45640

Der erste ist natürlich ein strengerer Selektor: nur Klassen unter dem ID-Tag werden berücksichtigt, dies wird von IE7 (oder IE6 für diese Angelegenheit) nicht unterstützt

Der zweite Selektor bezieht sich auf alle Kinder der Klasse Kurs-Seitenleiste, unabhängig davon, wo sie erscheinen.

Der IE hat in der Tat ein Problem mit dem Selektor #ID.class:

http://bytesizecss.com/blog/post/the-idclass-selector-in-ie6

http://csscreator.com/node/26521

http://code.google.com/p/ie7-js/issues/detail?id=29

2voto

kapa Punkte 75108

Es ist ein dokumentierter IE6/7-Fehler (wieder...), da @Peter suggéré.

Als Abhilfe können Sie Folgendes verwenden

jQuery('.course-sidebar')
    .filter('#course-contents')
    .find('.folder')
    .length

oder (unter Verwendung von Kontext , weniger lesbar)

jQuery('.folder', jQuery('.course-sidebar').filter('#course-contents')).length

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X