如何在javascript中编写jquery"is"方法

ein*_*ein -1 javascript jquery

我想知道如何只使用javascript编写jQuery方法?

您不能使用任何第三方库.只有浏览器提供的javascript.

仅供参考isjQuery中的方法:

根据选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true.

Esa*_*ija 5

如果您需要支持旧版浏览器,则应使用jQuery.这应该适用于IE9,Firefox和Chrome.

//returns true if element matches selector or if element is equal to the node passed as selector
function is( elem, selector ) {
    var div = document.createElement("div");
    var matchesSelector = div.webkitMatchesSelector || div.mozMatchesSelector || div.msMatchesSelector;
    return typeof selector == "string" ? matchesSelector.call( elem, selector ) : selector === elem;
}
//returns true if any elements in the array/nodelist "is" selector
function anyIs( elems, selector ) {
    var l = elems.length, i;

    for( i = 0; i < l; ++i ) {
        if( is( elems[i], selector ) ) {
            return true;
        }
    }
    return false;
}

is(document.createElement("div"), "div")
//true
is(document.createElement("div"), "li")
//false
anyIs(document.getElementsByTagName("div"), document.getElementsByTagName("div")[3])
//true
anyIs(document.getElementsByTagName("div"), "div")
//true
Run Code Online (Sandbox Code Playgroud)

  • @Quentin我认为如果整个主题是"不用jQuery就做",那么关于支持jQuery对象的部分可以被忽略. (3认同)
  • @Quentin是的我不会写一个CSS选择器引擎作为我的答案,但我想我可以做列表的事情 (2认同)