「脱jQuery」 生JSで.is()のように要素が条件に合うかどうか判定する

今回は条件に合うかどうかを判定して truefalse を返す .is() 関数を生JSで実装します。

jQuery


$('.selector').is('.active');

例えば、 .selector 要素が .active クラスを持っていたら true を返します。

生JS


function is(node, selector) {
  return (node.matches || node.msMatchesSelector).call(node, selector);
}

IEは matches には対応していないので、プレフィックスつきの非標準な msMatchesSelector を使っています。


is(document.querySelector('.selector'), '.active');

こんな感じで使うことができます。