老师,是这个意思吗?
<!DOCTYPE html>
<html>
<head>
<meta charest="utf-8">
<title>test</title>
</head>
<body>
<div id="test">aaa</div><!--这是注释节点-->
<script>
var testDiv = document.createElement('div');
var isElement = function(obj){
//普通过滤
if ( obj && obj.nodeType === 1 ){
if ( window.Node && ( obj instanceof Node ) ){
return true;
}
try {
//假1不是元素节点不能执行下面的两个方法,报错返回false
testDiv.appendChild(obj);
testDiv.removeChild(obj);
} catch (e){
return false;
}
return true;
}
return false;
}
//判断是XML还是HTML的元素节点
var isXML = function(doc) {
//判断是否为XML写!==,判断是否为HTML写===
return doc.createElement("p").nodeName !== doc.createElement("p").nodeName;
}
//下面为被测试的函数
var isHTMLElement = function(el){
if(isElement(el)){
return isXML(el.ownerDocument);
}
return false;
}
</script>
</body>
</html>老师想判断是否为XML的元素节点整体是这么写的吗?运行不出来,听得也乱,应该是调用或者哪里错了吧
48
收起
正在回答
3回答
同学你好,
1、第一行输出true是代表div是一个元素。第二行输出false说明是一个html元素,因为在进行
isHTMLElement判断时,会判断是否是xml,因为不是,所以会直接返回false:

视频老师这个地方写的有点不对,应该是取非的:

2、在测试的时候改为isElement(testDiv)。
如果我的回答帮助了你,欢迎采纳,祝学习愉快!



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星