-1

jQuery isメソッドをjavascriptのみを使用してどのように記述できるのでしょうか?

サードパーティのライブラリを使用することはできません。ブラウザから提供されるJavaScriptのみ。

is参考までに、jQueryのメソッド:

現在一致している要素のセットをセレクター、要素、またはjQueryオブジェクトと照合し、これらの要素の少なくとも1つが指定された引数と一致する場合はtrueを返します。

4

2 に答える 2

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
于 2012-07-01T14:58:59.763 に答える
2
function is( elem, selector ) {
    var sel = elem.ownerDocument.querySelectorAll( selector );
    return [].some.call( sel, function( el ) {
        return elem === el;
    } );
}

trueいずれかの要素が一致した場合に返されます。

于 2012-07-01T15:17:27.247 に答える