Comment sélectionner ce td élément et son texte avec Jquery
Je veux changer la "Oui! Pick me" dans "Pris" avec Jquery dans le code HTML suivant la structure, j'ai utilisé $('#myDiv>table>tr>td>table>tr').eq(1).text("Picked");
Mais ça ne fonctionnait pas. Quelqu'un pourrait jeter quelque lumière sur cette s'il vous plaît? Merci!
Pour info, le premier td de la première table contient elle-même une autre table...
<div id="myDiv">
<table>
<tr>
<td>
<table>
<tr>
<td>Yes! Pick me!</td>
<td>Not me..</td>
</tr>
<tr>
<td>Not me..</td>
</tr>
</table>
</td>
<td>Not me..</td>
</tr>
<tr>
<td>Not me..</td>
</tr>
</table>
</div>
La section $('#myDiv>table>tr>td>table>tr>td').eq(1).text("Picked");
fait le truc, j'ai oublié le dernier td de la partie. Grâce à la Roquette et à l'aide de tous.
pourquoi ne pas vous donner des id pour les champs que vous souhaitez sélectionner?
Salut Neysor, b/c de la partie du code est généré automatiquement par un ASP.net de contrôle de l'utilisateur. Je suis en train de poster un exemple de code ici faire preuve de la même structure pour faciliter la référence. thx
Salut, Fusée, a fonctionné comme un charme! Merci une Tonne!!! Sloppy moi~
Salut Neysor, b/c de la partie du code est généré automatiquement par un ASP.net de contrôle de l'utilisateur. Je suis en train de poster un exemple de code ici faire preuve de la même structure pour faciliter la référence. thx
Salut, Fusée, a fonctionné comme un charme! Merci une Tonne!!! Sloppy moi~
OriginalL'auteur eastboundr | 2012-02-24
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
$('table table td:first', '#myDiv')
à assurez-vous de ne pas sélectionner une autre table. 🙂D'accord.
$("$myDiv table table td:first")
travaille trop.merci, bfavaretto, donc je suppose qu'avec les espaces, de cette façon il ne sélectionner que le "premier aspect de la balise" alors?
Les espaces qui signifie "descendant". Donc, "table" s'entend d'une table dans une autre table (avec n'importe quoi, comme
<tr>
et<td>
dans le milieu).td:first
signifie que la première<td>
(à l'intérieur d'une table, à l'intérieur d'une autre table, qui est à l'intérieur d'un div avecid == myDiv
).OriginalL'auteur bfavaretto
Commencer votre sélection à l'
#myDiv
élément ($('#myDiv')
), puis de trouver tous les TD de l'élément à l'intérieur d'une table dans une autre table (.find('table table td')
), puis seulement de modifier le premier (.eq(0)
).Documentation:
.find()
: http://api.jquery.com/find.eq()
: http://api.jquery.com/eqOriginalL'auteur Jasper
Le principal problème est que vous voulez
.eq(0)
pas.eq(1)
comme.eq()
est basée sur 0, et vous n'êtes pas la sélection de latd
, seul letr
.Autres que l'aide
>
descendant direct des sélecteurs fait votre sélection pas très robuste.Essayer
$('#myDiv table table td').eq(0).text('Picked');
OriginalL'auteur Jeff B
Vous pouvez essayer:
OriginalL'auteur DarkAjax
Vous pouvez utiliser l' :contient du(de texte) sélecteur de
Être prudent avec les tableaux imbriqués, cependant, parce que si vous étiez à utiliser juste
Vous obtenez à la fois la cellule après plus de la cellule, il est imbriquée à l'intérieur.
OriginalL'auteur Quentin
Votre enfant sélecteur de requête ne fonctionnera pas parce que HTML5 nécessite l'analyseur pour insérer
<tbody>
éléments à l'intérieur de votre<table>
éléments, puisque vous avez oublié de mettre dans vous-même. Peut-être vous devriez envisager de validation de votre HTML?OriginalL'auteur Neil