猿问

为什么在IE8下也会正常返回true呢

<div id="p-node">		<div id="c-node">123</div>	</div>
function fixContains(a,b){ //a参数是节点,b是a下面的子节点			// 因为要使用parentNode节点遍历的方法(IE8以下不支持parentNode),所以我们使用try..catch来捕获错误			try{				while((b=b.parentNode)){  //将b节点的父节点赋给b					if (b===a) {						return true;					}				}				// if(a===b.parentNode){				// 	return ture;				// }				return false;//循环体内如果不成立,返回false			}catch(e){				return false; //这里因为IE8一下不支持parentNode,所以将这个错误捕获,返回一个false			}		}		var pNode=document.getElementById("p-node");		var cNode=document.getElementById("c-node");		var text=cNode.childNodes[0];		alert(fixContains(pNode,cNode));//true

为什么IE8以下不支持parentNode,try..catch捕获这个错误之后不应该返回false吗?怎么在IE8下也会正常返回true呢

qq_勿忘初心_H
浏览 707回答 0
0回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答