11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour

J'ai le code suivant


function menuInit(){
	var ahref = document.getElementsByTagName("a");
	for(var i=0;i<=ahref.length;i++){
		
	}
}


Je récupère donc tous les élements a de ma page. Tous mes éléments a ne possédent pas d'id. Je voudrais donc savoir comment tester dans ma boucle si l'élément en cours posséde un id ou non.

Merci par avance
Modifié par ashesheart (12 Jul 2007 - 10:13)
Modérateur
Salut,

Tu peux mettre :
function menuInit()
{
	var aA, iA;

	aA = document.getElementsByTagName('a');
	iA = aA.length;

	do
		if(aA[--iA].id)
		{
			// instructions si le lien a un id
		}
	while(iA > 0);
}


<edit tardif>J'ai modifié la syntaxe du code mais c'est la même chose... Smiley langue
Modifié par koala64 (12 Jul 2007 - 10:00)
Merci Koala,

J'avais déja réaliser ce test la. Mais firebug me dit qu'il y a une erreur car pour les éléments a qui n'ont pas d'id on ne peut faire ahref[ i].id.

voici le code de firebug


ahref[ i] has no properties
[Break on this error] if(ahref[ i].id){

Modifié par ashesheart (12 Jul 2007 - 09:59)
Modérateur
Là, le problème ne vient pas du fait que tu aies un id ou non... Il ne trouve apparemment pas tes liens.
Ben pourtant je ne comprend pas je lance ma fonction dans l'événement onload de la fenetre. Les éléments devraient donc être chargés.
Modérateur
Le problème est dans la condition de ta boucle... Faut mettre < au lieu de <=
Modifié par koala64 (12 Jul 2007 - 10:11)
Ben merci l'erreur venait de la en effet. J'avais pas fait attention. Etant donné qu'on commence de 0 il est normal de faire un < au lieu d'un <=.
J'aurais pu faire également un <= (ahref.length - 1).

En tout cas merci.