DOMおれおれAdvent Calendar 2015 – 03日目
書き忘れてた。jQueryのis()
みたいな感じです。
var elBody = document.querySelector('body'); var loading = elBody.matches('.is-loading');
クラスの有無や要素名だけなんかなら他のAPIでも良いのだけど、ちょっと複雑になると難しい。そんなときこそこの matches()
が便利。
var matched = el.matches('#foo ul.bar > li > a[href^="#"]'); if (matched) { alert('OK!'); }
環境
昔は el.matchesSelector()
という名前で進められていたみたいで、古いやつだとそっちじゃないとだめかも。
IEでは機能は9+で実装済みだけど、 el.msMatchesSelector()
という名前なので注意が必要。最新版の11やEdgeでもだ。
Android Browserも el.webkitMatchesSelector()
だった、のが最新のOSならChromeが載ってて、こっちはそのまま el.matches()
で通る。たぶん。
その他
仕様はLiving Standardだけみたい。