Page 1 sur 1

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

Posté : 19 janv. 2010, 21:36
par Stef
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?

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

Posté : 20 janv. 2010, 20:20
par Stef

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

Posté : 11 févr. 2010, 15:23
par Truc
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> ';    
}

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

Posté : 11 févr. 2010, 17:26
par Stef
T'as raison, c'est vrai... pourquoi j'y ai pas pensé?

Merci Truc! : )