2010-08-09 5 views
1

Je suis en train de coder une application qui ajoute des lignes à une table sans rafraîchissement en utilisant javascript et jquery. Pour ajouter à la table, j'ai besoin de faire un décompte des lignes qui sont actuellement dans la table. J'utilise ce code ...jQuery - Les lignes de la table de comptage ne fonctionnent pas dans IE7

var count = $('#columns tr.FIELD').length; 

Le code fonctionne bien dans Firefox et Chrome, mais je dois construire autour de IE7. Y a-t-il une raison pour laquelle IE renvoie 0 alors que ce sélecteur fonctionne correctement dans d'autres navigateurs?

Merci.

+0

Après avoir revisité cette question, je décidé d'écrire un petit [exemple de travail] (http://jsfiddle.net/ sHH2n /) pour vous, en utilisant exactement le même sélecteur. Je pense que vous devrez peut-être poster votre balisage html afin que nous puissions être en mesure d'identifier correctement le problème. –

Répondre

3

Je pense qu'IE7 pourrait insérer une balise tbody cachée dans votre table, ce qui rend le sélecteur incorrect.

Essayez $('#columns').find('tr.FIELD').length

Plus correctement, assurez-vous que votre table est sémantiquement correcte

<table> 
<thead>[HEADER ROW]</thead> 
<tbody>[CONTENT]</tbody> 
</table> 
+0

+1 - Pour simplifier ma vie, j'utilise maintenant des balises tbody dans les tables, juste pour rester cohérent avec IE. :) –

+0

Ce peu moi la première fois que j'ai construit une table incorrecte et nécessaire d'analyser dans IE. Je construisais les tables dynamiquement, ce qui causait toutes sortes de maux de tête avec le développement automatique de tables: P. –

+0

IE n'est pas le seul navigateur qui insère l'élément TBODY. ** Tous ** les principaux navigateurs, y compris Firefox et Chrome, font la même chose. Essayez-le vous-même dans la console - 'var d = document.createElement (" div "); d.innerHTML = "

"; alerte (d.innerHTML); De plus, il n'y a pas de sélecteur '>> dans la question de l'OP, donc même avec l'élément TBODY, tous les TR seraient retournés (l'OP indique spécifiquement que IE7 renvoie 0 lignes). –