jQuery: Obtenir la prochaine cellule de tableau verticalement
Comment puis-je utiliser jQuery pour accéder à la cellule (td
) immédiatement ci-dessous une cellule dans un réseau traditionnel-mise en page html table
(c'est à dire, dans laquelle toutes les cellules couvrent exactement une ligne et une colonne)?
Je sais que la suite sera mis nextCell
de la cellule à droite de l'cliqué sur la cellule parce qu'ils sont immédiats frères et sœurs, mais je suis en train de récupérer la cellule immédiatement au-dessous de l'cliqué sur la cellule:
$('td').click(function () {
var nextCell = $(this).next('td');
});
De préférence, je voudrais le faire sans utiliser de classes ou id.
OriginalL'auteur Devin Burke | 2012-01-12
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
'td'
argument pour les enfants, et pourrait jeter hors si l'OP ath
éléments dans la table.OriginalL'auteur Kevin B
index
est de 0 basée sur l'indice de la cellule de la ligne actuelle (prevAll
trouve toutes les cellules avant celui-ci).Puis dans la ligne suivante, nous trouvons la
nth-child
td à l'index + 1 (nth-child
commence à 1, d'où le+ 1
).$(this).prevAll().length
sur$this.index()
?Je ne connaissais pas
index
jusqu'à maintenant. 🙂Je n'ai jamais pensé à utiliser .prevAll().longueur. haha. Même résultat, je n'ai aucune idée de qui est plus rapide.
J'ai corrigé le
index + 1
. Aussi, peut-êtreindex
appelle la même choseprevAll
n'donc, je pense qu'ils sont très similaires en termes de performance,index
est plus facile à comprendre.En fait, c'est la syntaxe exacte que jquery utilise dans le noyau pour les
$.fn.index()
méthode. à l'aide deprevAll
peut être plus rapide avec plusieurs centaines de milliers d'itérations, mais à la fin.index()
est plus facile à lire ou à maintenir.OriginalL'auteur mbillard
Comment sur:
OriginalL'auteur Adaz
Si vous voulez le faire sans l'aide de sélecteurs, vous pouvez le faire:
Pas que l'efficience est important ici, mais il fonctionne beaucoup plus vite pour le faire de cette façon - dans les tests de plus de 100 000 itérations, il était de 2 à 5 fois plus rapide que le sélecteur de fonction approches.
OriginalL'auteur Mark Rhodes
Sont il y a un nombre égal de cellules dans chaque ligne de la table? Si oui, vous pourriez obtenir le "comte" de la cellule en question, puis sélectionnez la cellule correspondante dans la
next('tr')
.OriginalL'auteur dyelawn