老师,是这个意思吗?
<!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 星