2010-06-22 5 views
2

Je suis bloqué dans un problème de sélecteur dans JQuery. J'ai la structure html suivante ....Problème de sélecteur jQuery

<table> 
<tr> 
    <td rowspan="3"></td> 
    <td></td> 
    <td></td> 
    <td rowspan="3"></td> 
</tr> 
<tr> 
    <td></td> 
    <td></td> 
</tr> 
<tr> 
    <td rowspan="4"></td> 
    <td></td> 
    <td></td> 
    <td rowspan="4"></td> 
</tr> 
<tr> 
    <td></td> 
    <td></td> 
</tr> 
.... 
</table> 

Je veux choisir le premier td dans un tr ayant la rowspan propriété. Comment puis-je sélectionner ceci en utilisant les sélecteurs JQuery. Quelque chose comme $ ("table> tr> td [rowspan]") sélectionne tous les td ayant la propriété rowspan.

Cordialement

+2

Est-ce que cela signifie « le premier td dans un tr si est possède une propriété rowspan » ou « le premier des td: s dans un tr qui a une propriété rowspan »? C'est à dire. un td de cette ligne serait-il inclus: ''? – Guffa

Répondre

2

Voir first-child

$("table td[rowspan]:first-child") 

Comme @kobi a dit, il y a un élément tbody implicite que les navigateurs injectent. Pour être très précis, utilisez:

$("table > tbody > tr > td[rowspan]:first-child") 
+0

Très bien. Cela a fonctionné parfaitement. Merci. – vikmalhotra

+0

Vous devriez toujours répondre au commentaire de Guffa dans votre question. Si la réponse est oui, alors ma solution ne fonctionnera pas. L'exemple de code que vous avez donné ne contient pas son cas. – Anurag

4

<table> s ont <tbody> implicite, c'est pourquoi votre sélecteur ne fonctionne pas. Essayez:

$("table td[rowspan]") 

Maintenant, la première <td> dans chaque <tr> serait:

$("table tr").find("td[rowspan]:first") 

Exemple de travail (tout à fait désordre, mais c'est votre table): http://jsbin.com/aqere/2

+0

+1 bonne capture sur le corps – Anurag

+1

Je veux sélectionner le premier dans chaque qui a l'attribut rowspan. L'extrait de code que vous avez indiqué sélectionne toujours tous les s. – vikmalhotra

+0

Même si je jette la balise et ajoute la balise en html, cela ne fonctionne toujours pas. – vikmalhotra