11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je suis débutant en javascript et j'aimerais m'améliorer un peu, je m'intéresse a la méthode getElementsById(), mais j'ai quelques soucis que je ne comprend absolument pas...

j'ai un menu qui, lorque l'on click sur une rubrique, fait apparaitre la section correspondant.
voici mon code:
var tab = ["C_carte","C_pays","M_carte","A_champs","G_client","M_aff","E_desc","A_photo"];
function show(indice)
{
		for(var i = 0 ; i < tab.length ; i++)
			document.getElementsById(tab[i]).style.visibility="hidden";
		document.getElementsById(indice).style.visibility="visible";

}


Seulement ça ne marche pas (IE me dis que la méthode getElementsById ne gère pas cette propriété/fonction)

Pourtant j'ai tester cela avant de l'appliquer a mon code et ça
<script type="text/javascript" language="javascript">

function test(truc){
document.getElementById(truc).style.display="none";
}
</script>


<div id="id_div">

<img src="chemin_img.png" alt="desc_img" />

</div>
<a href="#" onclick="javascript:test('id_div');">test</a>


ça marche très bien....
Help Smiley confused [/i]
Modifié par DarkHerumor (04 Dec 2006 - 15:53)
Modérateur
Bonjour,

Attention, tu as mis un s de trop. C'est getElementById et non getElementsById.

Du moins, tu mélange les deux (ta fonction réelle et ta fonction de test). Lequel veux-tu utiliser ?
Modifié par Tony Monast (04 Dec 2006 - 15:44)
Modérateur
En fait, c'est la première fois que je vois getElementsById avec un S. Je ne suis pas certain que c'est une fonction Javascript de base. Je pense qu'il faut la créer. D'après les exemples que j'ai vu sur le Web, notamment celui-ci, la fonction va chercher tous les éléments ayant un tel ID. Cela reste un non-sens car un ID est par définition unique... donc il ne devrait pas y avoir plus d'un élément avec le même ID.

Je te suggère donc de trouver une solution avec getElementById, sans s. Smiley cligne

Si jamais ton problème est résolu, merci d'indiquer le sujet comme tel en éditant ton premier message, et en ajoutant le mot [Résolu] au début du titre.
Oui voila merci bien, en fait c'est juste une erreur de ma part je voulais bien utiliser la fonction getElementById, j'ai fais une bête erreur de syntaxe, pensant que mon code était bon...
Merci encore