あなたのメソッドは実行時間の点で効率的だと思いますが、おそらくあなたが求めているのは糖衣構文です。そのために、プラグインにラップすることができます:
jQuery.fn.findAndSelf = function(selector) {
return this.find(selector).add(this.filter(selector))
}
次に、次のように使用します。
$('.whatever').findAndSelf('.awesome')
ファンシーになりたい場合は、「find」だけでなく「parents」と「children」およびその他のセレクターベースのプラグインでも機能するプラグインを作成できます。
jQuery.fn.withSelf = function(plugin, selector) {
return this[plugin](selector).add(this.filter(selector))
}
次に、最初の引数として、呼び出したいトラバーサルプラグインを指定します。
$('.whatever').withSelf('find', '.awesome')
$('.whatever').withSelf('parents', '.awesome')
キックのためだけに、任意の数のトラバーサルプラグインを一度に呼び出すことができるもう1つの楽しいプラグイン:
jQuery.fn.traverse = function(plugins, selector) {
var set = new jQuery();
$.each(plugins, function(i, val) {
set.add(this[val](selector));
}
return set
}
次のように、セレクターベースのプラグインの任意の組み合わせでこれを呼び出すことができます。
$('.whatever').traverse(['find','filter'], '.awesome')
$('.whatever').traverse(['parents','find'], '.awesome')
$('.whatever').traverse(['parents', 'filter'], '.awesome')