Solved

Traversing the DOM in IE6

Posted on 2008-10-15
3
1,680 Views
Last Modified: 2013-11-18
I receive this error:
childNodes.1.childNodes.1.childNodes is null or not an object

for the attached code snippit in IE 6... the code works fine in IE 7 and FireFox 2... but not in IE 6 if anyone can point me out some tips, I'd be greatly appreciative.
var oldSelectRow = selectRow;

selectRow = function(object, selectionType, hasControl, index, duringPageLoad, disableDeselect) {

    var theRow = object;

    while (theRow.nodeName != 'TR') {

      theRow = theRow.parentNode;

    }

    document.getElementById("InputText0").value = theRow.childNodes[1].childNodes[1].childNodes[1].childNodes[1].innerHTML; //This is where the error occurs according to IE 6

	oldSelectRow(object, selectionType, hasControl, index, duringPageLoad, disableDeselect);

}

Open in new window

0
Comment
Question by:jabrthel
3 Comments
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 22728762
Please show the complete html
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 22729511
Try adding code that displays information about the individual elements.
For example, perhaps something like:
<script type='text/javascript' src='objDisplay.js'></script>
 

...

  alert( objDisplay( 'thisRow', thisRow ) );

...

  alert( objDisplay( 'child[1]', thisRow.child[ 1 ] ) );

...

Open in new window

objDisplay.js.txt
0
 
LVL 42

Accepted Solution

by:
David S. earned 250 total points
ID: 22736313
This seems to be the standard issue of IE not counting white-space only text nodes in the childNodes collection.  One way to solve the issue is to use the following function instead of childNodes directly.
@Michel and HG: Wow. No offense, but I'm surprised that you both missed the problem.

function getChildNode(elm,num,type) { // 2nd and 3rd args are optional

  num=num||0;type=type||1; // by Kravvitz of DynamicSiteSolutions.com

  var i=-1,n=elm.childNodes,l=n.length,k=-1;

  while(++i<l) if(n[i].nodeType==type && ++k==num) return n[i];

  return null;

}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article covers the basics of the Sass, which is a CSS extension language. You will learn about variables, mixins, and nesting.
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now