老师,我是差不多学完第二阶段回头看新增视频的,还是看不懂,希望老师解释
来源:4-3 如何判断节点是html和xml元素节点
迷失的小麦
2020-02-06 16:29:00
//Sizzle, jQuery自带的选择器引擎
var isXML = function(elem) {
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
return documentElement ? documentElement.nodeName !== "HTML" : false;
};
console.log(isXML(document.getElementById("test")));
//但这样不严谨,因为XML的根节点,也可能是HTML标签,比如这样创建一个XML文档
try {
var doc = document.implementation.createDocument(null, 'HTML', null);
console.log(doc.documentElement);
console.log(isXML(doc));
} catch (e) {
console.log("不支持creatDocument方法");
} //我们看看mootools的slick选择器引擎的源码:
var isXML = function(document) {
return (!!document.xmlVersion) || (!!document.xml) || (toString.call(document) == '[object XMLDocument]')
|| (document.nodeType == 9 && document.documentElement.nodeName != 'HTML');
};
//精简版
var isXML = window.HTMLDocument ? function(doc) {
return !(doc instanceof HTMLDocument);
} : function(doc) {
return "selectNodes" in doc;
} var isXML = function(doc) {
return doc.createElement("p").nodeName !== doc.createElement("P").nodeName;
} var isHTML = function(doc) {
return doc.createElement("p").nodeName === doc.createElement("P").nodeName;
}
console.log(isHTML(document)); var isHTMLElement(el){
if(isElement){
return isXML(el.ownerDocument);
}
return false;
}1.5段代码是真的没有思路,希望老师能像如图所示一样解释一下代码的逻辑和含义
2.什么是XML?与HTML什么区别?(比如p标签就是html吧)
3.判断的基本思想是什么?前几分钟是讲到了,没听懂,我也不知道为什么,第一次看见三元运算符中有函数
之前老师对判断元素节点的解释看懂了,虽然有个遗留问题,希望老师像之前一样解释

1回答
同学你好,问题解答如下:
1.之前老师们一行行注释代码,虽然同学当时看懂了,但是其实你对代码理解的并不透彻,假如把代码去掉,隔一段时间再来复习 ,你可能会忘记很多。所以这种传授知识的方式是最不可取的,反而让同学没有办法进步。本阶段课程确实比较难理解,看一两遍看不懂都很正常的。还是建议同学多看几遍视频,把每一个案例多练习几遍,自己先去思考与探索。因为同学已经学到第二个阶段了,不能像入门阶段那样,遇到问题直接来问。要逐步开始锻炼自己的思考和解决问题的能力,不然能力得不到提升,永远是原地踏步了。如果说探索的过程中哪一句代码有疑惑,可以提出来,老师会为你解答。
2. XML 指可扩展标记语言 ,和HTML类似。目前前端开发学习的标签都是HTML 。XML不属于前端开发的技术范畴,不需要学习 ,简单的了解即可。
3. 判断没有什么基本思想可言。这个要看你实际需求,如果遇到了需要判断的,那么就使用判断。例如我需要在某一种情况下操作一些事情,那么就可以判断各种情况。
同学是不懂三元运算符吗?参考如下理解:
基本语法:
条件表达式?表达式1:表达式2
问号前面的位置是判断的条件,判断结果为布尔型。结果为true时返回表达式1,为false时返回表达式2。这个表达式并没有规定必须是什么类型 ,所以判断后,想要执行任何操作都行。
祝学习愉快~
相似问题