2010-07-01 15 views
0

J'ai un tableau appelé currentTD qui contient deux entiers, le premier élément du tableau est un ID à un élément <TR>, et le second élément du tableau est l'ID d'un <TD> élément dans ce <TR>.Sélection d'un élément TD à partir de son ID dans jQuery

Je veux d'une manière ou d'une autre sélectionner cette <TD> et changer sa couleur de fond. Je ne suis pas sûr de savoir comment je peux sélectionner ce <TD> étant donné les "coordonnées" de currentTD?

Merci.

+3

.. voyez maintenant pourquoi les identifiants uniques sont importants? Vous avez plusieurs ID TR qui sont identiques et plusieurs identifiants TD qui sont identiques. Il est impossible de les distinguer. –

+0

@Gaby, "vous avez plusieurs ID TR qui sont identiques et plusieurs ID TD identiques." Je ne vois pas où le PO dit l'une ou l'autre de ces choses. –

+2

@Matthew - @ Gaby a raison, regardez sa question précédente: http://stackoverflow.com/questions/3154532/getting-the-co-ordinates-of-a-td-cell-using-jquery –

Répondre

0

L'ID d'un élément est unique, de sorte que vous pouvez sélectionner en utilisant l'identifiant du < td> directement:

$('#' + currentTD[1]).css('background-color', color); 
2

Ceci est basé sur votre previous question: vous pouvez utiliser .eq(), comme ceci:

$("table").find("tr").eq(trIndex).children("td").eq(tdIndex) 
      .css({ backgroundColor: "red" }); 

Ceci suppose que vous avez un tableau comme celui-ci: [tdIndex, trIndex]. Comme pour votre balisage précédent, supprimez ces ID, ils sont à la fois invalides et inutiles.

Les ID ne peuvent pas commencer par un nombre (sauf si vous utilisez HTML5) et ne peuvent pas être répétés, car ils sont sur votre <td> s. Mais puisque vous pouvez obtenir ce que vous voulez via les index ... il n'y a pas besoin des attributs id de toute façon, il vous suffit de les supprimer.

+0

Je pense que l'OP veut 'id' ... – Reigel

+0

@Reigel - Le mot" coordonnées "met en doute pour moi, je pense que ce qu'il a est" ligne 12, cellule 4 "dans un tableau .. Bien sûr, je devine ici, pourrait être totalement faux. –

+1

+1 ...... L'OP devrait reconsidérer son balisage ... – Reigel

0

Si currentTD a un ID du TD pour changer son arrière-plan comme deuxième élément, alors ce qui suit devrait fonctionner.

$('#' + currentTD[1]).css('background-color', 'red');