[JAVASCRIPT] Bug IE - getelementbyid

Résolu/Fermé
lingus - 6 sept. 2007 à 15:22
 lingus - 7 sept. 2007 à 10:20
Bonjour tout le monde,
J imagine que le problème a déjà été posé des milliers de fois mais je trouve pas de solution à celui-ci.
J'ai donc un tableau en HTML qui a un id="aloha". Quand je veux accéder à ce tableau en javascript, sous firefox il reconnait bien mon tableau et il peu y accéder (alert donne "[object HTML tableElement]").
Mais sous IE(7) il ne reconnait pas l'objet (alert donne "[object]").
Je precise qu'il n'y aucun autre lement dans ma page qui a "aloha" pour id ou name, et que je n ai aucun meta tage de ce nom non plus.
Quelqu'un aurait il une solution ?

code javascript :
function	Test()
{
	var	table			=	document.getElementsByName('aloha');
       alert(table);
}


code HTML:
<table id="aloha">
    <tr>
            <td><a href="javascript:;" onclick="Test();">[+] Test</a></td>
    </tr>
</table>
A voir également:

4 réponses

J'ai enfin identifié mon véritable bug. Ca pourra peut etre aider les débutants en DOM comme moi.
En fait chose que je ne savais pas, sous IE lorsque l'on veut céer un tableau (<table>) en javascript il faut rajouter la balise <tbody>.
un petit lien qui explique ca mieux que moi : http://blognote-info.com
2
Erreur de frappe, j'étais en plein test c'est pas getElementsByName() mais bien getElementById() que j'utilise.
Désolé
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
6 sept. 2007 à 18:23
Bonsoir

Non, y'a pas de bug. C'est juste qu'IE ne type pas vraiment les objets et affiche toujours [Object]

La preuve :

<html>
<head>
<script type="text/javascript">
<!--

function space(size)
{
	var str="";
	for (var i = 0; i < size; i++)
	{
		str+=" ";
	}
	return str;

}


function getChildNodesInfo(node, level)
{	
	if (level==undefined) level = 0;

	// Parcours des noeuds enfants
	var txt = "";
	var i = 0;
	while (node)
	{
		txt = "- "+space(level*3)+"node["+i+"].nodeType = "+node.nodeType+"\n"+
			"- "+space(level*3)+"node["+i+"].nodeName = "+node.nodeName+"\n"+
			"- "+space(level*3)+"node["+i+"].nodeValue = "+node.nodeValue+"\n";

		if (node.firstChild) 
		{		
			level++;
			txt = txt +"\n"+getChildNodesInfo(node.firstChild,level);
		}
		node = node.nextSibling;
	}
	return txt;
}


function Test()
{
	var table = document.getElementById('aloha');


	// Parcours de tous les noeuds de l'élément DOM : gaffe ça peut planter IE !
	alert(getChildNodesInfo(table,1));
}


//-->
</script>
</head>
<body>

<table id="aloha">
    <tr>
            <td><a href="javascript:;" onclick="Test();">[+] Test</a></td>
    </tr>
</table>

</body>
</html>



Donc on parcours bien l'arbre DOM pour l'élément table aloha

Voilà
0
Ha oui, j ai donc mal identifié mon bug.
Car j'ai un script qui marche comme je veux sous firefox mais qui ne fait absolument rien sous IE.
Mais bon je regarderai ca demain.
Merci beaucoup pour tes précisions PhP
0