牛客网前端技能大挑战(dom节点查找)
来源:互联网 发布:广告阻拦软件 编辑:程序博客网 时间:2024/05/06 13:24
题目描述
查找两个节点的最近的一个共同父节点,可以包括节点自身
输入描述:
oNode1 和 oNode2 在同一文档中,且不会为相同的节点
在解决这道题之前我们需要先了解一些关于JS的相关小知识,首先我们需要了解contains()这个方法
IE中的contains方法可以判断A元素是否包含B元素,如果包含则返回true,否则返回false,在开发中会在事件代理处理上面用到。W3C的方法是compareDocumentPosition,所以综上来说:JS通过contains和compareDocumentPosition方法来确定DOM节点间的关系,判断一个元素(对象)是否为另一个元素的子元素。如果是则返回true,不是则返回false。
下面说一下关于js布尔返回值的相关知识:
逻辑与:
如果第一个操作数是对象,则返回第二个操作数;
如果第二个操作数是对象,则只有在第一个操作数的求值结果为 true 的情况下才会返回该对象;
如果两个操作数都是对象,则返回第二个操作数;
如果有一个操作数是 null ,则返回 null ;
如果有一个操作数是 NaN ,则返回 NaN ;
如果有一个操作数是 undefined ,则返回 undefined 。
逻辑或:
如果第一个操作数是对象,则返回第一个操作数;
如果第一个操作数的求值结果为 false ,则返回第二个操作数;
如果两个操作数都是对象,则返回第一个操作数;
如果两个操作数都是 null ,则返回 null ;
如果两个操作数都是 NaN ,则返回 NaN ;
如果两个操作数都是 undefined ,则返回 undefined 。
相关思路:
下面是相关解题代码:
function commonParentNode(oNode1, oNode2) { return oNode1.contains(oNode2) && oNode1 || commonParentNode(oNode1.parentNode,oNode2);}
如果各位大佬有其他的思路欢迎评论.
- 牛客网前端技能大挑战(dom节点查找)
- 牛客前端技能挑战
- 牛客网"前端大挑战"题目解答
- 牛客网前端大挑战修改this指向
- dom 节点查找
- js,dom节点查找
- 查找元素节点【DOM】
- DOM 查找节点,修改节点的值
- Web前端知识技能大汇总
- Web前端知识技能大汇总
- CIO思考:ERP顾问具备技能大挑战
- jquery Dom对象_查找节点
- jQuery 中的 DOM 操作-查找节点
- DOM节点的增加,删除,修改,查找
- [Web前端]梳理-DOM.2. 节点树.4.节点信息
- 挑战程序竞赛系列(18):3.1查找第k大的值
- web前端初学技能——5大web前端核心技能
- 挑战代码淘宝UED前端智勇大冲关第二季
- this串联构造方法
- ResultSet用法集锦
- 设计模式(一):工厂方法模式
- Mac通过aapt命令查看apk的包名等信息
- JS判断页面是否在微信浏览器、QQ浏览器等打开的方法
- 牛客网前端技能大挑战(dom节点查找)
- devicesconsole工具介绍
- 16进制与字符串、字节数组之间的转换
- spring+atomikos 实现的分布式事务
- RuntimeException认识理解
- 【jzoj5088】【GDOI2017第四轮模拟day2】【最小边权和 】【图论】
- MATLAB filter2
- 2、AsyncTask源码分析
- CSN博客持之以恒勋章,想说爱你不容易