首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS魔法堂:判断节点位置关系

一、前言                             在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生...JS呢?...(rawRet & 16); return ret; }; compareDocumentPosition可以算是W3C标准中比较两节点位置关系的一大利器,不仅可以判断祖孙关系,还可以判断其他关系哦...(或者一个在文档之外)  000010         2              节点 B 在节点 A 之前  000100         4              节点 A 在节点 B 之前...full=1): //2013.1.24 by 司徒正美 function contains(parentEl, el, container) { // 第一个节点是否包含第二个节点 //contains

5.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS数组at函数(获取最后一个元素的方法)介绍

    本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大。 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做?...当然除了这种方式之外,还有其他的方式,比如: let last = array.slice(-1)[0] 先通过slice获取后面一个元素的数组,然后通过下标0获取最后一个元素。...在比如通过pop获取最后一个元素: let last = array.pop() 但是 通过pop的方式会改变数组本身,所以一般不建议用。 0x01 无论试用上面那种方式,都感觉很繁琐。...这就让人羡慕python里面的数组操作,可以通过负索引的方式获取最后一个元素,代码如下: last = array[-1] js里面不支持负索引的方式。...不过es6新增了一个at方法,可以获取数组的指定索引的元素,并且支持负索引。负索引从后往前计算,-1表示最后一个,-2 表示倒数第二个,依此类推。 因此试用此方法获取最后一个元素会变得简单很多。

    4.7K30

    js 判断一个 object 对象是否为空

    js 判断一个 object 对象是否为空 转载原文 判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in....../ 如果不为空,则会执行到这一步,返回true return true } return false // 如果为空,返回false 2.通过 JSON 自带的 stringify() 方法来判断...var a = {} a.toString() // "[object Object]" 3.ES6 新增的方法 Object.keys(): Object.keys() 方法会返回一个一个给定对象的自身可枚举属性组成的数组...如果我们的对象为空,他会返回一个空数组,如下: var a = {} Object.keys(a) // [] 我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。...return true // 如果不为空,则会执行到这一步,返回true 作者:言墨儿 链接:http://www.jianshu.com/p/972d0f277d45 转载补充: 原文中的代码,是写在一个

    10K11

    js -【 数组】怎么判断一个变量是数组类型的?

    怎么判断一个数组是数组呢? 其实这个也是一个常考的题目。依稀记得我为数不多的面试经过中都被问道过。...此方法返回一个布尔值,能够精确判断一个对象的类型。 ? ? ?...如果变量对象不是一个纯数组,那么返回的数字就是-1。因为indexOf方法在字符串中找不到指定字符就会返回-1. ? 所以最后还需要通过比对数值是否等于-1就能判断是否是数组类型: ?...所以用这个方法就能判断出来。 对比一个类型为“纯”Object的变量打印出来的信息: ? 就更加一目了然为什么用这个方法就可以判断出来了吧!...方案五:数组方法 isArray() Array.isArray(variable); 思路: js一个方法,专门用来测试对象是否是Array类型 ?

    7K30

    从第一个节点出发到最后一个节点的受限路径数(迪杰斯特拉 + 拓扑排序)

    题目 现有一个加权无向连通图。...给你一个正整数 n ,表示图中有 n 个节点,并按从 1 到 n 给节点编号;另给你一个数组 edges ,其中每个 edges[i] = [ui, vi, weighti] 表示存在一条位于节点 ui...从节点 start 出发到节点 end 的路径是一个形如 [z0, z1, z2, ..., zk] 的节点序列,满足 z0 = start 、zk = end 且在所有符合 0 <= i <= k-1...返回从节点 1 出发到节点 n 的 受限路径数 。 由于数字可能很大,请返回对 10^9 + 7 取余 的结果。...解题 先预处理出每个点 到 n 点 的最短路径,参考迪杰斯特拉算法 再建立 1 开始的最短路径是递减的 新图,同时记录节点的入度 采用 拓扑排序,累积前一个节点转移过来的方案数 typedef pair

    51910
    领券