11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un petit problème d'interprétation de fonction jquery par IE.

Voici mon code :


$(document).ready(function(){
	$("table.spip th:first-child").addClass('first');
	$("table.spip tr td:first-child").each(function () {
		if($(this).attr('rowspan') != undefined) {
			$(this).css('vertical-align','middle');	
		}
	});
});


Je pense que le problème viens de la boucle if qui doit retourner true même quand le td ne comporte pas de 'rowspan'. Toujours est-il que je me retrouve avec des td de la deuxième colonne affublé d'un style=vertical-align:middle; alors qu'ils ne devraient pas en avoir. C'est une demande client et je ne peut pas passer outre.

Sur les autres navigateur, cela fonctionne sans problèmes.

J'ai essayer en changeant la condition sans résultat. J'ai mis 'rowSpan' sans résultat.

Je ne comprend pas pourquoi IE considère que les <td> enfant du <td rowspan> ont également un rowspan alors que ce n'est pas le cas.

Je cherche toujours une solution et suis à l'écoute de vos observations.

Merci d'avance.
Salut,

Peut être que ie rajoute automatique un rowspan égal à 1. En tout cas ff me retourne 1...
Le mieux est de vérifié si rowspan est supérieur à 1. Si le résultat est undefined la retournera false.

$(document).ready(function(){ 
    $("table.spip th:first-child").addClass('first'); 
    $("table.spip tr td:first-child").each(function () { 
        if($(this).attr('rowspan') > 1) { 
            $(this).css('vertical-align','middle');     
        } 
    }); 
});