Thanks for your feedback, Andrew.
I am new to arrays in javascript, so thanks for the tip. I also looked at the nodeTag (not sure where it came from, but it certainly wasn't needed) so thanks for that too ... and the id check.
I have a modified version of my original now ... still testing it though, before cleaning it up.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Find Parent Id</title>
<script type="text/javascript">
function assignClickEvent(){
var links = document.links;
for(var i =0; i < links.length; i++){
links[i].onclick = findDivId;
}
};
function findDivId(e) {
var targ;
var dad;
var idx = ['nav'];
var tagx = ['LI','UL','A'];
if (!e){
var e = window.event;
}
if (e.target){
targ = e.target;
} else if (e.srcElement) {
targ = e.srcElement;
}
dad = targ;
/*
while(dad.parentNode && dad.parentNode.id != '' && tagx.indexOf(dad.parentNode.tagName) == -1 && tagx.indexOf(dad.tagName) == -1) {
dad = dad.parentNode;
}
*/
if(targ.parentNode.tagName == 'BODY'){
dad = targ.parentNode;
test = 0;
} else if (targ.parentNode.id && tagx.indexOf(targ.parentNode.tagName) !== -1) {
dad = targ.parentNode;
test = 1;
} else if (targ.parentNode.parentNode.id && tagx.indexOf(targ.parentNode.parentNode.tagName) !== -1) {
dad = targ.parentNode.parentNode;
test = 2;
if(dad.parentNode.tagName == 'LI'){
dad = targ.parentNode.parentNode.parentNode.parentNode;
test = 8;
}
if(dad.parentNode.tagName == 'LI'){
dad = targ.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
test = 9;
}
} else if (targ.parentNode.parentNode.parentNode.id && tagx.indexOf(targ.parentNode.parentNode.parentNode.tagName) !== -1) {
dad = targ.parentNode.parentNode.parentNode;
test = 3;
} else if (targ.parentNode.parentNode.parentNode.parentNode.id) {
dad = targ.parentNode.parentNode.parentNode.parentNode;
test = 4;
} else {
dad = targ.parentNode.parentNode;
test = 5;
}
if(dad.tagName == 'LI'){
dad = targ.parentNode.parentNode.parentNode.parentNode;
test = 6;
if(dad.parentNode.tagName == 'LI'){
dad = targ.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
test = 7;
}
}
if(dad){
//if(idx.indexOf(dad.id) == -1){
alert('TAG = ' + dad.tagName + ' : ID = ' + dad.id + ' : HREF = ' + targ.href + ' : TEST = ' + test);
//}
};
return false;
};
window.onload = assignClickEvent;
</script>
</head>
<body id="page">
<a href="home.html">Help</a>
<div id="main">
<h2>Header</h2>
<div>
<ul>
<li><a href="scot.html">Scotiabank</a> (6)</li>
<li><a href="mon.html">Bank of Montreal</a> (3)</li>
<li><a href="cibc.html">CIBC</a> (3)</li>
<li><a href="canada.html">National Bank of Canada</a> (2)</li>
</ul>
</div>
<h2>Main</h2>
<ul id="nav">
<li><a href="scot.htm">Scotiabank</a> (6)
<ul id="nav-sub">
<li id="cib-sub"><a href="scot.html">Scotiabank</a> (6)
<ul id="nav-sub-sub">
<li id="cib-sub-sub"><a href="scot.html">Scotiabank</a> (6)</li>
<li><a href="canada.html">National Bank of Canada</a> (2)</li>
</ul></li></li>
<li><a href="mon.html">Bank of Montreal</a> (3)</li>
<li><a href="canada.html">National Bank of Canada</a> (2)</li>
</ul></li>
<li><a href="mon.html">Bank of Montreal</a> (3)</li>
<li><a href="cibc.html">CIBC</a> (3)</li>
<li><a href="canada.html">National Bank of Canada</a> (2)</li>
</ul>
</div>
<h2>Footer</h2>
<ul>
<li><a href="scot.html">Scotiabank</a> (6)</li>
<li><a href="mon.html">Bank of Montreal</a> (3)</li>
<li><a href="cibc.html">CIBC</a> (3)</li>
<li><a href="canada.html">National Bank of Canada</a> (2)</li>
</ul>
</body>
</html>