我想知道如何仅使用 javascript 编写 jQuery is 方法?
您不能使用任何第三方库。只有浏览器提供的javascript。
仅供参考is
jQuery 中的方法:
根据选择器、元素或 jQuery 对象检查当前匹配的元素集,如果这些元素中至少有一个与给定参数匹配,则返回 true。
我想知道如何仅使用 javascript 编写 jQuery is 方法?
您不能使用任何第三方库。只有浏览器提供的javascript。
仅供参考is
jQuery 中的方法:
根据选择器、元素或 jQuery 对象检查当前匹配的元素集,如果这些元素中至少有一个与给定参数匹配,则返回 true。
如果您需要对旧浏览器的支持,您应该使用 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
function is( elem, selector ) {
var sel = elem.ownerDocument.querySelectorAll( selector );
return [].some.call( sel, function( el ) {
return elem === el;
} );
}
true
如果任何元素匹配,将返回。