Ich denke, Ihre Methode in Bezug auf die Ausführungszeit effizient ist, aber was sind Sie wahrscheinlich ist zu fragen syntaktischer Zucker. Dafür könnte man es in ein Plugin wickeln:
jQuery.fn.findAndSelf = function(selector) {
return this.find(selector).add(this.filter(selector))
}
es dann wie folgt verwenden:
$('.whatever').findAndSelf('.awesome')
Wenn Sie Lust bekommen wollten Sie ein Plugin erstellen können, die nicht nur für ‚finden‘ funktioniert aber für ‚Eltern‘ und ‚Kinder‘ und anderer Selektor-basierte Plug-in:
jQuery.fn.withSelf = function(plugin, selector) {
return this[plugin](selector).add(this.filter(selector))
}
Dann sind Sie als erstes Argument liefern würden die Traversal-Plugin Ihnen anrufen mögen:
$('.whatever').withSelf('find', '.awesome')
$('.whatever').withSelf('parents', '.awesome')
Just for Kicks, eine andere Spaß-Plugin, das Sie auf einmal eine beliebige Anzahl von Traversal-Plugins können anrufen:
jQuery.fn.traverse = function(plugins, selector) {
var set = new jQuery();
$.each(plugins, function(i, val) {
set.add(this[val](selector));
}
return set
}
Sie diese mit einer beliebigen Kombination von Selektor-basierte Plugins aufrufen könnte, wie folgt :
$('.whatever').traverse(['find','filter'], '.awesome')
$('.whatever').traverse(['parents','find'], '.awesome')
$('.whatever').traverse(['parents', 'filter'], '.awesome')
Was ist besser? '.find ('*')' oder '.contents()' wie in: http://stackoverflow.com/questions/364791/jquery-select-descendants-das-parent – Joe
Wahrscheinlich eine gute Idee, das zu beachten andSelf ist jetzt veraltet und wurde durch addBack() ersetzt, das auch einen Selektor akzeptiert. http://api.jquery.com/addBack/ –