Solved

Traversing the DOM in IE6

Posted on 2008-10-15
3
1,679 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

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

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 …
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

757 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

23 Experts available now in Live!

Get 1:1 Help Now