admin管理员组

文章数量:1322838

I am trying to add an ajax response to a div (it's HTML code with tables, forms, etc).

In FF innerHTML works perfectly, but in IE it gives me an unknown error.

I tried lots of stuff, but I only got it working when I added jQuery and ran the .html method on the div I want the code inserted into.

Anyone care to explain why this works and not a simple innerHTML? I tried looking at the .html() code, but I guess I am not the great at JS because I didn't understand what it was doing.

I am trying to add an ajax response to a div (it's HTML code with tables, forms, etc).

In FF innerHTML works perfectly, but in IE it gives me an unknown error.

I tried lots of stuff, but I only got it working when I added jQuery and ran the .html method on the div I want the code inserted into.

Anyone care to explain why this works and not a simple innerHTML? I tried looking at the .html() code, but I guess I am not the great at JS because I didn't understand what it was doing.

Share Improve this question edited Jan 12, 2018 at 22:54 Mark Amery 155k90 gold badges430 silver badges471 bronze badges asked Dec 4, 2009 at 17:54 AntonioCSAntonioCS 8,50618 gold badges67 silver badges95 bronze badges 0
Add a ment  | 

4 Answers 4

Reset to default 8

IE has several documented (pre | table (thead, tbody, tr, tfoot) | div | select) .innerHTML bugs.

Thus libraries like jQuery abstract away those bugs for you by applying workarounds where needed for IE.

As for your specific error... without seeing the code it is hard to tell.

Setting the .innerHTML on pre's, certain div's, select's (if it does fail, will fail silently) but setting the .innerHTML on certain table elements (in certain versions of IE) will actually throw an error/exception.

Note: The issue with setting the .innerHTML of a div is very specific in condition and only occurs in IE6 & IE7.

IE is fussy about changing <table>s from javascript. I've run into trouble before if I don't specify the table down to the last detail, including the <tbody> tag.

Just use jQuery and forget about all the horrible cross browser problems - you won't go back!

I have same problem every day. Try with .innerText instad of .innerHTML, that will solve your problem. Answer is Javascript is parsed different in IE and FF.

本文标签: javascriptWhy does html work and not innerHTML or appendChildStack Overflow