原生 js 如何实现 jquery 的 closest()方法?

【字号: 日期:2022-06-06浏览:73作者:雯心

问题描述

原生 js 如何实现 jquery 的 closest()方法?

情景: 想要查找某个元素的祖先元素, 中间不知相隔多少层? 但是又不想引入jquery整个库。

问题解答

回答1:

原生 js 如何实现 jquery 的 closest()方法?-PHP中文网问答-原生 js 如何实现 jquery 的 closest()方法?-PHP中文网问答

围观一下哦,学习一下。

回答2:

这个问题,你该让jquery回答啊....自己看下源码不就可以了

closest: function( selectors, context ) { var cur, i = 0, l = this.length, matched = [], pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; for ( ; i < l; i++ ) { for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { // Always skip document fragments if ( cur.nodeType < 11 && ( pos ? pos.index( cur ) > -1 : // Don't pass non-elements to Sizzle cur.nodeType === 1 && jQuery.find.matchesSelector( cur, selectors ) ) ) { matched.push( cur ); break; } } } return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );},

相关文章: