Rekurzív DOM bejárás [snippet]


Jól jöhet az alábbi kód, ha JavaScripttel kell bejárni a DOM-fát egy csomópontból kiindulva

function walkDomTree(start, callback) {
	for(var i = 0; i < start.childNodes.length; i++) {
		if(start.childNodes[i].nodeType != 3) {
				callback(start.childNodes[i]);
				walkDomTree(start.childNodes[i], callback);
		}
	}
}

A kód a start paraméterben megadott csomóponttól (Node) kezdve rekurzívan “lefelé” végigjárja a DOM-fát és a második paraméterben megadott függvényt minden nem szöveg elemmel meghívja.

Pl.:

walkDomTree(document, function(element) { if(element.id != '') { element.id = 'clone_' + element.id; } });

Ez a kód a dokumentumban előforduló összes azonosítóval (id) rendelkező elem azonosítóját ellátja egy clone_ prefixummal.

Kapcsolódó bejegyzések:
  • Rekurzív DOM bejárás [snippet]

    Aki írt már JavaScript kódot tudja, hogy a nyelv rengeteg objektummal dolgozik, és minden objektumnak vannak böngésző-specifikus tulajdonságai, metódusai. Ilyen …

  • Rekurzív DOM bejárás [snippet]

    Az alábbi JavaScript kód segítségével könnyedén ellenőrizhetjük, hogy a megadott e-mail cím formailag helyes-e. A function TRUE vagy FALSE értékkel tér vissza. ( …

  • Rekurzív DOM bejárás [snippet]

    Ebben a tutorialban most azt mutatom meg, hogy hogyan lehet egy egyszerűbb hírküldő script-et összedobni. Elég lesz a php, ugyanis txt dokumentumban tárolja …

  • Rekurzív DOM bejárás [snippet]

    Az bekezdésszintű HTML elemek leírása; H1-H6, ADDRESS, P, UL LI és OL, DL DT és DD, PRE, DIR és MENU, DIV és CENTER, BLOCKQUOTE, HR 1. Fejlécek ‹H1› – ‹H6› …

  • Rekurzív DOM bejárás [snippet]

    Nemrég volt hír a lapon a “Google SEO Start Guide” megjelenéséről és most a híreket böngészve belekadtam egy hozzá kapcsoló, hasznos anyagba. Google SEO G …

A cikket beküldte: BlackY ()

Szólj hozzá
a Rekurzív DOM bejárás [snippet] c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>