Est-il une différence entre les sélecteurs suivants:
var index = $(this).parent().index();
var index2 = $(this.parentNode).index();
De ce que j'ai lu, parentNode est largement pris en charge.
Est-il une raison pour utiliser l'un plutôt que l'autre?
OriginalL'auteur r0m4n | 2012-03-30
Le jQuery
.parent()
sélecteur sélectionne le parent immédiat de tous les nœuds dans l'ensemble de nœuds. Mais, comme dans votre exemple, le nœud set est tout simplement un nœud$(this)
, il y a peu de différence pratique.Cette différence si vous décidez de faire quelque chose comme
$(".foo").parent()
, où il pourrait y avoir de nombreux nœuds qui ont la classefoo
.OriginalL'auteur Greg Hewgill
parentNode est originaire JS, où les parents) ne l'est pas.
Ce que vous faites dans votre code d'emballage les éléments du DOM dans l'objet jQuery de sorte que vous pouvez appeler jQuery méthodes spécifiques. Donc, vous ne pouvez pas appeler index() sur tout cela.parentNode, mais vous pouvez l'appeler sur $(c'.parentNode).index (), car il a de devenir un objet jQuery.
Votre premier exemple encapsule le courant de l'élément DOM comme objet jQuery et qu'utilise le jQuery parent() la méthode pour récupérer c'est parent et que l'indice de ce parent. Votre deuxième exemple directement enveloppe le parentnode directement.
OriginalL'auteur Bas Slagter