Ashura: Grafik durch Text ersetzen

Beitrag lesen

Hallo Mario.

Ein <div>-Elemet mit einem class-Attribut und Textinhalt.

»»

Dann probier ich es einfach mal:

var meinDiv = document.createElement("div");
var meinDivText = document.createTextNode("Testdiv");

Bis hierher ist es in Ordnung.

meinText.setAttribute("class","test");
meinText.appendChild(meinDivText);

Nanu? Wolltest du nicht so etwas erstellen?

<div class="test">Testdiv</div>

Wo kommt die Variable meinText auf einmal her?

var links = document.getElementsByTagName('img');

links.parentNode.replaceChild(meinDiv, links);

Das geht nicht. Du kannst nicht einen Array (ein Objekt) aus mehreren Elementen durch ein einziges ersetzen.

Du hast doch mit deiner Funktion schon eine gute Ausgangslage, warum nutzt du diese nicht?

Du musst mit der bereits vorhandenen Schleife (nebenbei bietet sich hier for statt while an) alle <img>-Elemente abklappern und deinen Kriterien entsprechend ersetzen:

var links = document.getElementsByTagName('img');
/* Hier das <div> intialisieren */

for (var i = 0; i < links.length; i++;) {

if (links[i].src.match(/.*new.gif/gi)) {
  /* text1 = document.createTextNode('new');
  links[i].parentNode.appendChild(text1);
  links[i].parentNode.removeChild(links[i]);

obiges durch die replaceChild-Funktion
  und die createTextNode-Funktion ersetzen */
  }
  if (links[i].src.match(/.*old.gif/gi)) {
  /*text1 = document.createTextNode('old');
  links[i].parentNode.appendChild(text1);
  links[i].parentNode.removeChild(links[i]);

Dito. */
  }
}

Einen schönen Mittwoch noch.

Gruß, Ashura

--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
30 Days to becoming an Opera8 Lover -- Opera 8.02 mit Bittorent-Unterstützung
Meine Browser: Opera 8.01 | Firefox 1.0.5 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]