NotFoundError: Node was not found
hawkmaster1
- javascript
0 robertroth0 hawkmaster10 dedlfix
0 quincunx
Hallo zusammen, ich möchte einen Bilderwechsel machen. Folgende Funktion wird bei einem onchange in einem <select> aufgerufen
function ShowJobtkProductImage(index) {
var div = document.getElementById('productimage');
if(div.getElementsByTagName("img")[0]){
alert('div ist da');
div.removeChild(document.getElementsByTagName("img")[0]);
}
if(document.forms[0].sel_productimages.options[index].value != ""){
var imgurl = document.forms[0].sel_productimages.options[index].value ;
var img = document.createElement("img");
img.src = "../image/icons/products/" + imgurl;
document.getElementById('productimage').appendChild(img);
}
}
Die Fehlermeldung heisst NotFoundError: Node was not found
und kommt von div.removeChild(document.getElementsByTagName("img")[0]);
Ich frage mich nur warum? Der Test Alert 'div ist da' meldet doch das img vorhanden ist? vielen Dank Gruss hawk
Liebe Mitdenker, liebe Wissende, liebe Neugierige,
Hallo zusammen, ich möchte einen Bilderwechsel machen. Folgende Funktion wird bei einem onchange in einem <select> aufgerufen
function ShowJobtkProductImage(index) { var div = document.getElementById('productimage'); if(div.getElementsByTagName("img")[0]){ alert('div ist da'); div.removeChild(document.getElementsByTagName("img")[0]); } if(document.forms[0].sel_productimages.options[index].value != ""){ var imgurl = document.forms[0].sel_productimages.options[index].value ; var img = document.createElement("img"); img.src = "../image/icons/products/" + imgurl; document.getElementById('productimage').appendChild(img); } }
Probier bitte mal so:
function ShowJobtkProductImage(index)
{
var div = document.getElementById('productimage');
if(img0 = div.getElementsByTagName("img")[0])
{
alert('image ist da');
img0.parentNode.removeChild(img0);
}
if(document.forms[0].sel_productimages.options[index].value != ""){
var imgurl = document.forms[0].sel_productimages.options[index].value ;
var img = document.createElement("img");
img.src = "../image/icons/products/" + imgurl;
document.getElementById('productimage').appendChild(img);
}
}
Bin gespannt, ob das so klappt
Spirituelle Grüße
Euer Robert
robert.r@online.de
Hallo Robert, vielen Dank für deine Hilfe.
ja, deine Änderung scheint zu klappen. Zumindest kam der Fehler nicht mehr. Ich hatte zwar kurzzeitig seltsame Firebug Meldungen wie
uncaught exception: out of memory
Aber das war vielleicht nur temporär?
viele Grüße hawk
Tach!
ja, deine Änderung scheint zu klappen. Zumindest kam der Fehler nicht mehr.
Wann immer du im DOM etwas suchst und dieses ein weiteres Mal brauchst, leg es in einer Variable ab und verwende diese. Dann kann es auch nicht mehr passieren, dass du einmal die Nachfahren eines Elements durchsuchst und beim nächsten Mal das document.
dedlfix.
Hallo hawk,
function ShowJobtkProductImage(index) {
var div = document.getElementById('tester');
if (div.getElementsByTagName('img')[0]) {
console.log('div ist da, bild ist weg');
div.removeChild( document.getElementsByTagName('img')[0] );
}
}
der Teil funktioniert!
gr qx