Connecting Tech Pros Worldwide Help | Site Map

Internet Explorer insertRow/insertCell failure

 
LinkBack Thread Tools Search this Thread
  #1  
Old November 4th, 2005, 10:35 PM
Howard Jess
Guest
 
Posts: n/a
Default Internet Explorer insertRow/insertCell failure

CLJ --

I've searched the newsgroup and FAQ for info on insertRow(), but
didn't see this reported.

It seems that Internet Explorer doesn't respond correctly to either
insertRow() or insertCell(), if the object that calls this method isn't
already within a table. That is:

row = tbody.insertRow(0); // fails if tbody's parent is null
cell = row.insertCell(0); // fails if row's parent or grandparent is null

By "fail", I mean the method returns null. As I understand the DOM spec,
this behavior is wrong. Am I missing something? Mozilla, Opera, and
Safari work as expected.

Thanks for any help.

Howard Jess

Test file:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Table API test</title>
<style type="text/css">
table{border:1px dotted #999;margin:2px;background-color:#ddd}
</style>
<script type="text/javascript">
function buildTable(divid) {
var row,cell,tbody,table;

tbody = document.createElement('tbody');
row = tbody.insertRow(0);
cell = row.insertCell(0);
cell.appendChild(document.createTextNode('tablecel l'));

table = document.createElement('table');
table.appendChild(tbody);
document.getElementById(divid).appendChild(table);
return false;
}
</script>
</head><body>
<h1>Table API Test</h1>
<div id="tableDiv"></div>
<form action="" onsubmit="return buildTable('tableDiv')">
<p><input type="submit" value="Build Table"></p>
</form></body></html>

  #2  
Old November 4th, 2005, 11:45 PM
RobG
Guest
 
Posts: n/a
Default Re: Internet Explorer insertRow/insertCell failure

Howard Jess wrote:[color=blue]
> CLJ --
>
> I've searched the newsgroup and FAQ for info on insertRow(), but
> didn't see this reported.
>
> It seems that Internet Explorer doesn't respond correctly to either
> insertRow() or insertCell(), if the object that calls this method isn't
> already within a table. That is:
>
> row = tbody.insertRow(0); // fails if tbody's parent is null
> cell = row.insertCell(0); // fails if row's parent or grandparent is null
>
> By "fail", I mean the method returns null. As I understand the DOM spec,
> this behavior is wrong. Am I missing something? Mozilla, Opera, and
> Safari work as expected.[/color]

Perhaps not strictly 'wrong', but certainly 'not as expected'. The logic
might be that a tbody must belong to a table, and a row to a tbody and a
table. But that seems like making excuses: when building elements
dynamically they must exist for some (short) time with invalid
structures - rows will not have cells when they are created, nor tbodys
rows, etc.


The Microsoft documentation says:

"If you insert a row in a tFoot, tBody, or tHead, you also need to
add the row to the rows collection for the table. If you insert a
row in the table, you also need to add the row to the rows collection
for the tBody."

<URL:http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/insertrow.asp>


Confusing (their code example is not worth quoting)?

Just another IE quirk?


[...]

--
Rob
  #3  
Old November 5th, 2005, 07:15 PM
Gérard Talbot
Guest
 
Posts: n/a
Default Re: Internet Explorer insertRow/insertCell failure

Howard Jess a écrit :[color=blue]
> CLJ --
>
> I've searched the newsgroup and FAQ for info on insertRow(), but
> didn't see this reported.[/color]


Search for "insertRow() in iteration loop does not work" at this IE 6
product feedback page:

http://channel9.msdn.com/wiki/defaul...rogrammingBugs

Gérard
--
remove blah to email me
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,989 network members.