Table des matières
Niveau
..........
En rapport...

Elément DOM suivant et précédent

Sur un objet DOM il existe les propriétés nextSibling et previousSibling qui renvoient respectivement le noeud DOM suivant et le noeud DOM précédent.
Le problèmes est que aussi bien l'une que l'autre ne renvoint pas que des objets DOM. En effet, ce qui est considéré comme noeud suivant (ou précédent) peut être de plusieurs formes : attribut, texte, cdata....

Récupérer à tous les coup un objet

Voici donc 2 méthodes qui vont renverront toujours un élément DOM. Si aucun élément n'existe, c'est l'objet de départ qui sera renvoyé.

javascript
		function getPrevious (obj) {
			if (obj.previousSibling == null) return obj;
			var prev=obj.previousSibling;
			while (prev.nodeType!=1 && prev.previousSibling != null)
				prev=prev.previousSibling;
			return prev;
		}
		function getNext (obj) {
			if (obj.nextSibling == null) return obj;
			var next=obj.nextSibling;
			while (next.nodeType!=1 && next.nextSibling != null)
				next=next.nextSibling;
			return next;
		}

Utilisation

L'utilisation est très simple :

javascript
var monobjet = document.getElementById("test"); // récupération de l'objet de départ
var previous = getPrevious(monobjet); //objet précédent
var next = getNext(monobjet); //objet suivant


09/07/2007 08:46 -

iDo –