2010-08-10 4 views
0

J'utilise ce code pour obtenir toutes les têtes de table qui n'ont pas colspan. Cela fonctionne seulement dans firefox et chrome, mais pas dans IE. Quel est le code équivalent pour IE? Merci.comment sélectionner th sans colspan dans IE

$tableHeaders = $("thead th:not([colspan])", table); 

Répondre

0

Essayez:

$tableHeaders = $("#table_id th:not(:has(colspan))"); 

Plus:

http://api.jquery.com/has-selector/

+0

Comme je l'ai compris: has() ne fonctionne pas de cette façon. Comme le dit la documentation: "Sélectionne les éléments qui contiennent au moins un élément qui correspond au sélecteur spécifié." Donc pas pour les attributs, juste pour les éléments enfants. –

+0

non, cela n'a pas fonctionné. J'ai essayé $ tableHeaders = $ ("thead th: not (: a [colspan])", table); à la place et n'a pas fonctionné pour IE seulement encore. – user412929

1

Ceci est lié à un bug connu: http://bugs.jquery.com/ticket/7234

C'est ce que je viens avec, d'avoir une solution de contournement inter-navigateur:

Compatible IE7, IE8, IE9, FF4, Chrome, Opera11:

.filter(":not([colspan]),[colspan='1']") 

Mais soyez carreful, ce sera aussi sélectionner des cellules td/e avec un attribut colspan setted manuellement à 1, comme ... [ cela n'ajoute pas dans mon code parce que je supprime l'attribut colspan si setted à la valeur 1]

Je suppose que cela est ce que vous cherchez:

$tableHeaders = $("thead > th", table).filter(":not([colspan]),[colspan='1']"); 

Avis J'ai ajouté ' > 'au sélecteur th pour éviter la sélection g autre que vous pourriez avoir à l'intérieur (tableau dans l'en-tête de votre table, pourquoi pas?).

Questions connexes