peterS.: NodeLists und Array-Iteratoren - Scripte schneller entwickeln

Beitrag lesen

hallo Stefan,

ich möchte mittels JavaScript die Items einer Liste (<ul>) entfernen bzw.
neue hinzufügen.

dann musst Du Dich also schon mit node, sowie mit mindestens einer dieser
   methoden - removeChild, replaceChild, appendChild, insertBefore - befasst
   haben.

und warum denkst Du dann noch an soetwas ...

Allerdings suche ich verzweifelt nach den entsprechenden Properties für
eine Liste. Über document.getElementById() hole ich mir die Liste, leider
ist sowohl die Eigenschaft .rows als auch .items nicht richtig. Kann mir
jemand weiterhelfen?

.., anstatt einfach hier - getElementsByTagName, childNodes, nodeName,
   parentNode - weiterzulesen?

und weil es sich mal wieder so schoen anbietet, verweise ich alle an
   eleganten loesungen interessierte gleich noch auf array-iteratoren.

mit dem gesammelten material lassen sich locker zwei aus der vielzahl
   der fuer dieses problem moeglichen loesungen zimmern - ACHTUNG code:

~~~javascript (function () { // version 01:

//var ulElement = document.getElementsByTagName("ul")["HTMLUListElementId"]; // bzw.:
     var ulElement = document.getElementsByTagName("ul")[0];

var firstLevelListItems = Array.filter(ulElement.childNodes, (function (elm/, idx, arr/) {

return (elm.nodeName && (elm.nodeName.toLowerCase() == "li") && elm.parentNode && (elm.parentNode === ulElement));
     }));
     alert("firstLevelListItems.length = " + firstLevelListItems.length);
   })();/*
   javascript:(function () {var ulElement = document.getElementsByTagName("ul")[0];var firstLevelListItems = Array.filter(ulElement.childNodes, (function (elm) {return (elm.nodeName && (elm.nodeName.toLowerCase() == "li") && elm.parentNode && (elm.parentNode === ulElement));}));alert("firstLevelListItems.length = " + firstLevelListItems.length);})();
   */

(function () { // version 02:

//var ulElement = document.getElementsByTagName("ul")["HTMLUListElementId"]; // bzw.:
     var ulElement = document.getElementsByTagName("ul")[0];

var firstLevelListItems = Array.filter(ulElement.getElementsByTagName("li"), (function (elm/, idx, arr/) {

return (elm.parentNode && (elm.parentNode === ulElement));
     }));
     alert("firstLevelListItems.length = " + firstLevelListItems.length);
   })();/*
   javascript:(function () {var ulElement = document.getElementsByTagName("ul")[0];var firstLevelListItems = Array.filter(ulElement.getElementsByTagName("li"), (function (elm) {return (elm.parentNode && (elm.parentNode === ulElement));}));alert("firstLevelListItems.length = " + firstLevelListItems.length);})();
   */

  
   (bei geoffnetem forum die in den beispielen jeweils auskommentierte  
   letzte zeile ruhig mal auf die location-bar eines einigermassen  
   aktuellen geckos loslassen)  
  
  
   und hier noch ein chronologisch ungeordneter zwischenstand sich hoffentlich  
   in der praxis bewaehrender predigttexte aus meinereiniger tastatur zum thema  
   »DOM, Knotenlisten, Array-Iteratoren/-Accessoren«:  
  
   - [»Zugriff auf alle Input-Felder - \[Array.filter\]«](http://forum.de.selfhtml.org/archiv/2007/3/t149012/#m967245)  
   - [»Alle Elem. einer Klasse visible/hidden setzten«](http://forum.de.selfhtml.org/archiv/2007/2/t146934/#m953507)  
   - [»alle checkboxen an? - konzept: \[NodeList\]s und array-iteratoren«](http://forum.de.selfhtml.org/archiv/2007/3/t147923/#m959677)  
   - [»Suchen und Ersetzen - Typumwandlung mit dem Array-iterator "map"«](http://forum.de.selfhtml.org/archiv/2006/10/t138877/#m903048)  
   - [»auf Listen operieren, iteratoren/accessoren, Lisp im Anzug von C«](http://forum.de.selfhtml.org/archiv/2007/4/t149840/#m973530)  
   - [»radiogroup-spielkram: ...ich auch, ich auch... ;-)«](http://forum.de.selfhtml.org/archiv/2007/3/t149403/#m970429)  
   - [»DOM-getter und array-iteratoren - scripte schneller entwickeln«](http://forum.de.selfhtml.org/archiv/2007/3/t148291/#m962147)  
  
  
   messianische gruesse - peterS. - pseliger@gmx.net  
  
  

-- 
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
  
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]