Android 4.4 closest 的兼容性问题

原创
2020/11/13 20:55
阅读数 21

 

原文链接: Android 4.4 closest 的兼容性问题

https://developer.mozilla.org/en-US/docs/Web/API/Element/closest

基本上参考mdn即可

 

这个函数也是这次才发现的... 以前没用过, 主要作用是从自身开始向根元素查找, 返回第一个满足比较器的元素, 如果没有满足的, 返回null

 

polyfill

首先从自己开始, 然后进行比较器的判断, 如果为真则表示找到了返回元素, 否则向上级查找, 注意只会向上级查找, 不会查找兄弟节点!

if (!Element.prototype.matches) {
  Element.prototype.matches =
    Element.prototype.msMatchesSelector || 
    Element.prototype.webkitMatchesSelector;
}

if (!Element.prototype.closest) {
  Element.prototype.closest = function(s) {
    var el = this;

    do {
      if (Element.prototype.matches.call(el, s)) return el;
      el = el.parentElement || el.parentNode;
    } while (el !== null && el.nodeType === 1);
    return null;
  };
}

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部