Générer une liste à partir éléments du documents

Eléphant du PHP | 447 Messages

19 janv. 2010, 21:36

Hi!

Des données me manquent pour réaliser la fonction dont j'ai besoin:

j'ai un document html qui contient des ancres sous cette forme <a name="X">X</a>

je dois générer un liste de lien vers ces ancres...

alors j'ai commencé à faire ça:
<script type="text/javascript">
function chapt() {

	var menu = document.getElementById('menu');
	var line = document.getElementsByTagName('a');
	var list = new Array();
	var menulist = '';

	while (line) {

		list[] = line.name.value;		

	}

	var nb = list.length;

	for (i=0; i<nb; i++) {		

		menulist = menulist + '<a href="#' + list[nb] + '">' + list[nb] + '</a> ';

	}

	menu.innerHTML = menulist;	

}
</script>
</head>

<body onload="chapt()">
<div id="menu"></div>

<h2><a name="1">1</a></h2>

<dl>
<dt><a name="1.1"> 1.1</a><dd> Lorem ipsum........
<dt><a name="1.2"> 1.2</a><dd> Lorem ipsum........
<dt><a name="1.3"> 1.3</a><dd> Lorem ipsum........
<dt><a name="1.4"> 1.4</a><dd>
etc.
etc.
etc.
Là où je m'interroge c'est comment faire fonctionner le while pour rentrer dans le tableau toutes les valeurs des attributs "name" des tags "a"...
Ensuite pour chacune de ces ancres je veux générer le lien correspondant...

Comment corriger mon code pour que ça fonctionne?
Probably (only a) Human Problem?

Eléphant du PHP | 447 Messages

20 janv. 2010, 20:20

Probably (only a) Human Problem?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 févr. 2010, 15:23

Pourquoi faire 2 boucles (while + for) ?
"line" est déjà un tableau
var line = document.getElementsByTagName('a');

for (var i = 0; i < line .length; i++) {             
    menulist = menulist + '<a href="#' + line[i].name + '">' + line[i].name + '</a> ';    
}

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 447 Messages

11 févr. 2010, 17:26

T'as raison, c'est vrai... pourquoi j'y ai pas pensé?

Merci Truc! : )
Probably (only a) Human Problem?