2009-08-15 6 views
6

Je peux obtenir la ligne actuelle en utilisant ce code. Le "ceci" est un lien dans une cellule de tableau dans la rangée. Ces deux lignes suivantes peuvent faire la même chose, obtenir le tr après la ligne en cours.jquery - accède à la ligne du tableau suivant en fonction du nom de la classe à partir de l'emplacement actuel de la ligne?

$nextTR = $(this).parents('tr').next(); 
$nextTR = $(this).parents('tr').next('tr'); 

Si la sortie I $nextTR.html() je vois ce que j'attends

Je ne sais pas combien de lignes je dois aller pour se rendre à la ligne correcte, sauf par le nom de classe et de le faire comme cela ne travaille pour moi.

$nextTR = $(this).parents('tr').next('.concept'); 
$nextTR = $(this).parents('tr').next('tr .concept'); 

Tout ce que je reçois est nulle

L'exemple docs.Jquery link text utilise ce

$("p").next(".selected").css("background", "yellow"); 

Qu'est-ce que je manque ici?

+0

.next () filtre les frères et soeurs . Si le frère adapte le sélecteur, il est conservé; sinon, il est filtré. Dans votre cas, cela signifie que si le frère suivant du tr est de la classe concept, il est retourné, sinon vous obtiendrez une valeur nulle. – Zed

+0

Je vois ce que tu veux dire, hé, j'essaie toujours d'avoir la prochaine rangée! – Breadtruck

Répondre

11

Donnez nextAll un coup de feu.

+5

Crap, j'allais trouver une solution de fantaisie en utilisant la nouvelle fonction 'index', mais' $ (this) .closest ('tr'). NextAll ('tr.concept'). Eq (0) semble être un gagnant ». :) – hobbs

+0

Donc, cela a du sens.Est-ce que nextAll va au bas de la page à partir de la position actuelle, puis repart en haut de la dom et revient à la position de départ, et c'est combien d'éléments sont retournés? – Breadtruck

+0

@Breadtruck - no. Dans votre exemple, nextAll renvoie toutes les lignes après la ligne "current". –

0

Vous voulez obtenir le suivant d'une certaine classe?

Vous pourriez essayer de faire .next() et ensuite vérifier la classe peut-être?

Je suis un peu confus au sujet de votre question, je l'avoue, parce que vous semblez avoir fourni votre réponse ...

1

J'ai essayé de recréer votre code html + javascript at jsbin et je peux reproduire le problème:

siblings() renvoie tous les 4 rangs, et je peux voir que deux des lignes ont class="concept", mais next('.concept') ne retourne rien .

Est-ce que next() n'est pas censé être un sous-ensemble de siblings()?


merci pour le commentaire, maintenant je comprends! J'ai besoin de silbings, pas le suivant.

+0

suivant ne renvoie que l'élément suivant. Si le sélecteur que vous envoyez dans votre appel à next ne correspond pas à l'élément suivant, votre jeu de résultats sera vide. –

0

Supposons que, vous avez quelque chose comme HTML ci-dessous:

HTML:

<tr class="current_tr"> <!-- This is your current tr --> 
... 
..... 
... 
</tr> 

<tr class="nextRowClass"> <!-- You need to find this tr with the class--> 
... 
..... 
... 
</tr> 

JS:

var current_row = $('tr.current_tr'); 
//You can get next row with the class as below 
var next_row_with_class = $(current_row).next("tr.nextRowClass"); 
Questions connexes