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?).
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. –
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