Le jQuery trouver(..) la traversée de la méthode n'inclut pas le nœud actuel - il commence avec les enfants du nœud courant. Quelle est la meilleure façon d'appeler une opération de recherche qui inclut le nœud dans son algorithme de mise en correspondance? En regardant à travers les docs rien ne saute immédiatement aux yeux.
Réponses
Trop de publicités?Vous ne pouvez pas le faire directement, le plus proche que je peux penser à est de à l'aide de .andSelf()
et en appelant .filter()
, comme ceci:
$(selector).find(oSelector).andSelf().filter(oSelector)
//or...
$(selector).find('*').andSelf().filter(oSelector);
Malheureusement, .andSelf()
ne pas prendre un sélecteur, ce qui serait pratique.
$('selector').find('otherSelector').add($('selector').filter('otherSelector'))
Vous pouvez stocker $('selector')
dans une variable pour l'accélération. Vous pouvez même écrire une fonction personnalisée pour ce si vous avez besoin d'un lot:
$.fn.andFind = function(expr) {
return this.find(expr).add(this.filter(expr));
};
$('selector').andFind('otherSelector')
L'on a accepté la réponse est très inefficace et les filtres de l'ensemble des éléments qui sont déjà appariés.
//find descendants that match the selector
var $selection = $context.find(selector);
//filter the parent/context based on the selector and add it
$selection = $selection.add($context.filter(selector);