मुझे लगता है कि अपने विधि निष्पादन समय के संदर्भ में कुशल है, लेकिन क्या आप शायद के लिए पूछ रहे हैं वाक्यात्मक चीनी है। उसके लिए, आप इसे एक प्लगइन में लपेट कर सकते हैं:
jQuery.fn.findAndSelf = function(selector) {
return this.find(selector).add(this.filter(selector))
}
तो इस तरह इसका इस्तेमाल:
$('.whatever').findAndSelf('.awesome')
आप कल्पना प्राप्त करने के लिए आपको लगता है कि न केवल ढूंढने के लिए काम करता है एक प्लगइन बना सकते हैं चाहता है तो लेकिन माता-पिता और 'बच्चों' और अन्य चयनकर्ता आधारित प्लगइन्स:
jQuery.fn.withSelf = function(plugin, selector) {
return this[plugin](selector).add(this.filter(selector))
}
तो फिर तुम आप प्लगइन पहले तर्क के रूप में की आपूर्ति होगी ट्रेवर्सल कॉल करना चाहते हैं:
$('.whatever').withSelf('find', '.awesome')
$('.whatever').withSelf('parents', '.awesome')
बस किक के लिए
, आप सभी को एक बार ट्रेवर्सल plugins की एक मनमाना संख्या फोन की सुविधा देता है कि एक और मजेदार प्लगइन:
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')
कौन सा बेहतर है नहीं ले करता है? '.ind ('*')' या '.contents() 'जैसे: http://stackoverflow.com/questions/364791/jquery-select-descendants- शामिल-the- parent – Joe
शायद यह ध्यान रखना एक अच्छा विचार है कि और स्वयं को अब हटा दिया गया है और इसे एडबैक() के साथ बदल दिया गया है जो एक चयनकर्ता को भी स्वीकार करता है। http://api.jquery.com/addBack/ –