MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Element.matches()

この記事は翻訳作業中です。

Element.matches() メソッドは、特定のセレクタ文字列によって要素が選択された時にはtrueを返します。それ以外の時はfalseを返します。

いくつかのブラウザーではプレフィックス付き、標準ではないmatchesSelector()という名前で実装されています。

構文

var result = element.matches(selectorString); 
  • resulttrueかfalseの戻り値を返します。
  • selectorStringはセレクタはテストを表現する文字列です。

<ul id="birds">
  <li>Orange-winged parrot</li>
  <li class="endangered">Philippine eagle</li>
  <li>Great white pelican</li>
</ul>

<script type="text/javascript">
  var birds = document.getElementsByTagName('li');

  for (var i = 0; i < birds.length; i++) {
    if (birds[i].matches('.endangered')) {
      console.log('The ' + birds[i].textContent + ' is endangered!');
    }
  }
</script>

endangeredという値を持つクラス属性の要素が特定され、コンソールのログに"The Philippine eagle is endangered!"と表示されます。

例外

SYNTAX_ERR
特定のセレクタ文字列が無効です。

Polyfill

For browsers that do not support

Element.matches()Element.matchesSelector()をサポートしないがdocument.querySelectorAll()をサポートするブラウザーには、polyfillが存在する:

if (!Element.prototype.matches) {
    Element.prototype.matches = 
        Element.prototype.matchesSelector || 
        Element.prototype.mozMatchesSelector ||
        Element.prototype.msMatchesSelector || 
        Element.prototype.oMatchesSelector || 
        Element.prototype.webkitMatchesSelector ||
        function(s) {
            var matches = (this.document || this.ownerDocument).querySelectorAll(s),
                i = matches.length;
            while (--i >= 0 && matches.item(i) !== this) {}
            return i > -1;            
        };
}

仕様

仕様 ステータス コメント
DOM
Element.prototype.matches の定義
現行の標準 Initial definition

ブラウザー互換性

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Original support with a non-standard name

(有)[1]

(有) 3.6 (1.9.2)[2] 9.0[3] 11.5[4]
15.0[1]
5.0[1]
Specified version 34 (有) 34 (34) ? 21.0 7.1
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Original support with a non-standard name ? (有) 1.0 (1.9.2)[2] ? ? ?
Specified version ? (有) 34.0 (34) ? ? 8

[1] この機能は標準に準拠しないwebkitMatchesSelectorという名前で実装されていました。

[2] この機能は標準に準拠しないmozMatchesSelectorという名前で実装されていました。Gecko 2.0以前では無効なセレクタ文字列を渡したときにfalseを返すのではなく例外がスローされます。

[3] この機能は標準に準拠しないmsMatchesSelectorという名前で実装されていました。

[4] この機能は標準に準拠しないoMatchesSelectorという名前で実装されていました。

ドキュメントのタグと貢献者

 このページの貢献者: yoshioms1
 最終更新者: yoshioms1,