I modify document.getElementById('').innerHTML
with Java Script in a page. It's working fine in Firefox, but not IE8. Please see below for more details:
HTML Code:
<table> <tr id="abc"> <td id="ccc" style="color:red;">ccc</td> </tr> </table>
Java Script code:
document.getElementById('abc').innerHTML = '<td id="bbc" style="color:yellow;">abc</td>'
When I run the JS code in Firefox, it will change the display word from 'ccc' to 'abc', but it's just not working in IE8, does anyone know why? Is there any way I can make this work in IE8 as well?
People can struggle and complain about innerHTML not working. Such things usually occur because of human error, when strings are not appropriately defined, or there are some mistakes in JavaScript code.
getElementById("myPara") will return our html element as a javascript object which has pre-defined property innerHTML. innerHTML property contains the content of HTML tag.
Using the innerHTML attribute: To append using the innerHTML attribute, first select the element (div) where you want to append the code. Then, add the code enclosed as strings using the += operator on innerHTML.
Since the problem is in IE8, see MSDN:
The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR.
(emphasis mine)
Colin's work-around (setting innerText
on the td
instead of innerHTML
on the tr
) is a good one in your case. If your needs become more complex, you'll have to resort to The Table Object Model.
Since TR's innerHTML is read-only as a few people have said, you are better off changing your markup to target the TD:
<table><tr><td id="changeme"> ... </td></tr></table>
Then you can set the content of the TD as you wish via innerHTML, and change other properties by setting them on the DOM node:
var td = document.getElementById("changeme"); td.innerHTML = "New Content"; td.cssText = "color: red"; td.className = "highlighted";
You get the idea...
This saves you the overhead of destroying and creating an extra DOM element (the TD)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With