View Single Post
Old 11-15-2012, 08:47 AM   PM User | #6
Ulysses69
New Coder

 
Join Date: May 2004
Posts: 15
Thanks: 1
Thanked 0 Times in 0 Posts
Ulysses69 is an unknown quantity at this point
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>
Ulysses69 is offline   Reply With Quote