Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Another puzzling behavior of getElementById()

Try this script: http://jsfiddle.net/8da54/1/. Why is the output different in Firefox and IE?

HTML:

<div id="div1">
<div id="div2"><div id="data">data</div></div>
<div id="div3">a-</div>
</div>

Javascript:

var data = document.getElementById("data");
document.getElementById("div2").innerHTML="";
document.getElementById("div3").appendChild(data);

Output:
FF: a-data
IE: a-

like image 818
Arjun Avatar asked Nov 25 '25 02:11

Arjun


1 Answers

Appears to be one of the many IE .innerHTML bugs. In the meantime, you could remove elements the proper way:

var elem = document.getElementById("div2");
while (elem.firstChild) {
    elem.removeChild(elem.firstChild);
}

http://jsfiddle.net/8da54/2/

like image 96
Esailija Avatar answered Nov 26 '25 14:11

Esailija