tag:
Now all <tr>
s are appended to the <tbody>
, and the script works smoothly in all browsers.
No cellIndex in Safari: At the time of writing, cellIndex
is buggy in Safari 2.0; it always returns 0.
W3C DOM table methods and properties
The W3C DOM defines quite a few methods and properties for working with tables. Unfortunately, they suffer from a few browser-incompatibility problems, and even if they work perfectly they're far slower than traditional createElement()
/appendChild()
scripts. I advise you not to use most of these methods and properties.
The rowIndex
and cellIndex
properties may come in useful in some situations. They give the index number of a row in its table (rowIndex
) or a cell in its row (cellIndex
). There's also sectionRowIndex
, which gives the index number of a row in its table section (thead
, tbody
, or tfoot
).
innerHTML
innerHTML
is badly supported for table elements other than <td>
s. At the time of writing, it's not possible to set the innerHTML
of the tbody
, thead
, or tfoot
in Explorer or Safari.
Form fields in Explorer
Generating form fields is hard in Explorer. In theory, it seems simple:
Unfortunately, this code gives errors in Explorer, because the browser cannot handle the newField.type. If we use setAttribute()
, the error message disappears:
Another problem is that generated radio buttons don't work well in Explorer. Although it's possible to generate them through "pure" W3C DOM methods, the browser makes a mess of the name attributes of the radio buttons. Therefore, the generated radio buttons will likely not work as you expect them to.
How Radio Buttons Work: Remember: the user is allowed to check only one radio button in a group, and a group is defined as all radio buttons that share a name attribute. If the name attribute doesn't work correctly, the radio buttons won't work, either.
Switching to innerHTML
offers a solution:
Now the radio buttons work as expected.
[previous] [next]
URL: