Oui, .eq()est plus approprié pour la question du PO. :eq()est utilisé dans le paramètre de chaîne to $, alors qu'il .eq()s'agit d'une méthode sur un objet jQuery existant.
mjswensen
55
Je jure que je dois aller voir ça chaque fois . célibataire . le temps .
ivarni
3
@JoelWorsham Dépend du comportement souhaité. $('select').find('option').eq(n)ignorera essentiellement le regroupement et obtiendra toutes les options dans leur ensemble. Si vous le voulez par groupe, quelque chose comme ça est nécessaire:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Dykam
4
"Pourquoi ne pas parcourir la page (courte) des sélecteurs en premier?" - Parce que "eq" est un très mauvais nom et je le saute régulièrement car eq pour moi signifie comparaison ....
mmlac
309
Vous pouvez utiliser le sélecteur : eq , par exemple:
$("td:eq(2)").css("color","red");// gets the third td element
Je cherchais une tranche, mais je ne savais pas trop comment chercher. Merci d'avoir dépassé ce qui est requis dans la question d'origine.
Samik R
4
Pour les personnes qui trébuchent sur cette réponse, un point utile à noter est que le sélecteur du nième enfant est basé sur 1 tandis que: eq ou .eq () sont basés sur 0
Sudhanshu Mishra
1
Vous devez utiliser .eq()au lieu de :eq()réellement. Légère amélioration des performances.
Si vous avez déjà l'objet jquery dans une variable, vous pouvez également le traiter comme un tableau indexé normal, sans utiliser jquery:
var all_rows = $("tr");for(var i=0; i < all_rows.length; i++){var row = all_rows[i];//additionally, you can use it again in a jquery selector
$(row).css("background-color","black");}
Bien que l'exemple ci-dessus ne soit d'aucune façon utile, il représente la façon dont vous pouvez traiter les objets créés par jquery comme des tableaux indexés.
À droite, et un autre indice (si tout va bien utile): Si la ligne contient une liste d' <select>éléments et que vous voulez l'élément combobox sélectionné, utilisez$(row).val();
Matt
2
Si je comprends bien votre question, vous pouvez toujours envelopper la fonction get comme ceci:
Donc, à partir de la boucle de code ci-dessus est exécutée et nous voulons sélectionner un champ particulier pour cela, nous devons utiliser la sélection jQuery qui ne peut sélectionner que l'élément attendu de la boucle ci-dessus, donc le code sera
Pour les itérations, l'utilisation d'un sélecteur ne semble pas avoir de sens cependant:
var some = $('...');for( i = some.length -1; i>=0;--i ){// Have to transform in a jquery object again://var item = $( some[ i ]);// use item at will// ...}
"$ (function () {" au début de l'automne, j'ai créé une fonction anonyme, qui s'est déclenchée automatiquement. À l'intérieur, j'ai trouvé trois div parentaux utilisant des frères et sœurs. Puis j'ai itéré dans les 3 div parent et vérifie la longueur de chaque longueur des enfants. Comment je peux identifier que ce soit une dernière division ou non dans la division parent. Maintenant, j'alerte le dernier div html de chaque division principale de 3 parents
Sanjay Verma
Vous pouvez modifier votre réponse, au lieu de donner des informations dans les commentaires :)
.eq()
place de:eq()
?.eq()
est plus approprié pour la question du PO.:eq()
est utilisé dans le paramètre de chaîne to$
, alors qu'il.eq()
s'agit d'une méthode sur un objet jQuery existant.$('select').find('option').eq(n)
ignorera essentiellement le regroupement et obtiendra toutes les options dans leur ensemble. Si vous le voulez par groupe, quelque chose comme ça est nécessaire:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Vous pouvez utiliser le sélecteur : eq , par exemple:
Ou la fonction eq (int) :
N'oubliez pas non plus que les index sont basés sur zéro.
la source
:nth()
sélecteur - à ne pas confondre avec:nth-child()
si vous avez le contrôle sur la requête qui construit l'objet jQuery, utilisez
:eq()
Si vous n'avez pas de contrôle dessus (par exemple, il est transmis depuis une autre fonction ou quelque chose), utilisez
.eq()
Ou si vous voulez une section d'entre eux (par exemple, les troisième, quatrième et cinquième éléments), utilisez
.slice()
la source
.eq()
au lieu de:eq()
réellement. Légère amélioration des performances.Je pense que vous pouvez l'utiliser
Il trouve le deuxième li dans chaque ul apparié et le note.
la source
.eq () -Un entier indiquant la position 0 de l'élément.
Ex:
Considérez une page avec une simple liste:
Nous pouvons appliquer cette méthode à l'ensemble des éléments de la liste:
Pour plus d'informations: .eq ()
la source
Si vous avez déjà l'objet jquery dans une variable, vous pouvez également le traiter comme un tableau indexé normal, sans utiliser jquery:
Bien que l'exemple ci-dessus ne soit d'aucune façon utile, il représente la façon dont vous pouvez traiter les objets créés par jquery comme des tableaux indexés.
la source
<select>
éléments et que vous voulez l'élément combobox sélectionné, utilisez$(row).val();
Si je comprends bien votre question, vous pouvez toujours envelopper la fonction get comme ceci:
la source
eq()
vous donne gratuitement.Si vous voulez récupérer un élément / nœud ou une étiquette en boucle, par exemple
Donc, à partir de la boucle de code ci-dessus est exécutée et nous voulons sélectionner un champ particulier pour cela, nous devons utiliser la sélection jQuery qui ne peut sélectionner que l'élément attendu de la boucle ci-dessus, donc le code sera
par exemple
ainsi que par une autre méthode
mais la première méthode est plus efficace lorsqu'elle
HTML <tag>
a un nom de classe unique.REMARQUE: la deuxième méthode est utilisée quand il n'y a pas de nom de classe dans l'élément ou le nœud cible.
pour plus, suivez https://api.jquery.com/eq/
la source
Pour les itérations, l'utilisation d'un sélecteur ne semble pas avoir de sens cependant:
la source
Exemple en direct pour accéder et supprimer le Nième élément avec jQuery:
Lorsqu'il s'exécute, deux éléments de la liste ordonnée s'affichent, Premier et Troisième. Le second était caché.
la source
la source