最近、新しいjQuery Sizzleをざっと見てみましたが、Sizzle.matchesSelectorを使用することと、要素パラメーターの属性を直接評価することの間に、パフォーマンスに大きな違いがあるかどうか疑問に思いました。
$.expr.createPseudo(function(selector) {
return function( elem ) {
return elem.getAttribute('data-smth').match(/someRegex/)
}
}
VS:
$.expr.createPseudo(function(selector) {
return function( elem ) {
return $.find.matchesSelector(elem, 'div.someClass[data-smth*=smth]')
}
}
jqueryレベルを維持し、いくつかの制約を簡単に追加できるため、個人的にmatchesSelectorの方が簡単だと思います(上記の例の.someClass)