2010-10-27 20 views
0

Je souhaite "déplacer" un ID d'une cellule d'une table vers une cellule relative de la table.Déplacement d'un ID de la cellule vers une cellule relative dans une table à l'aide de jQuery

Pour simplifier les choses, disons que je ceci:

<tr><td></td><td id='a'></td><td></td><td></td><td></td></tr> 

L'une des cellules a id='a' mais je ne sais pas qui ce sera. Je veux simplement faire celui de droite id='a'.

Obtenir la cellule avec id='a' et non réglage de l'identifiant est assez simple:

var cell_a = $('#a'); 
cell_a.attr('id',''); 

Cependant, je ne suis pas sûr de savoir comment la cellule à droite. J'ai essayé quelques choses avec cell_a.parent().children() et cell_a.parent().find() mais n'a pas été en mesure de sortir une liste. Une fois que je reçois une à droite, il sera évidemment quelque chose comme:

var new_cell_a = ? 
new_cell_a.attr('id','a'); 

Répondre

3

Essayez cell_a.next()

comme expliqué dans cette page: http://api.jquery.com/next/

+0

D'accord, une question connexe; Et si, au lieu de vouloir bouger une cellule, je veux en descendre une? Je peux obtenir la bonne rangée avec 'cell_a.parent(). Next()' mais comment puis-je obtenir la cellule? – kerkeslager

+0

Ce serait 'cell_a.parent(). Next(). Children() [0]'. Vous pouvez trouver la liste complète des commandes de traversée ici: http://api.jquery.com/category/traversing/ –

1

Vous pouvez utiliser la méthode next() comme ceci:

$("#a").removeAttr('id').end().next().attr('id', 'a'); 

La méthode next() est utilisée pour trouver l'élément à côté de ce qui est spécifié dans prev ious selector $("#a") puis attr est utilisé pour changer son identifiant.

+0

'td [id = 'a']'? Pourquoi utiliseriez-vous un sélecteur aussi compliqué et lent puisqu'il n'y a qu'un seul élément avec l'identifiant 'a'? – Harmen

+0

@Harmen: Mise à jour avant de voir votre commentaire :) – Sarfraz

+0

Si je mets l'identifiant sur le nouvel élément, cela va-t-il le désactiver sur l'ancien? – kerkeslager