2010-11-19 8 views
0

J'ai une table avec identifiant comme « mytable » et ont beaucoup de lignes ... ilcomment sélectionner une ligne particulière?

Je veux sélectionner une ligne avec id = « row_100 » dans l'aide jquery ..

comment le faire ..

Code

function highlight_tran(tranid) 
{ 
    var rowpos = $('#'+tranid).position(); 
    $('#trtable').scrollTop(rowpos.top); 
} 

où trtable est l'identifiant du conteneur de la table

tranid est id du tr, ici tranid est l'un utilisateur veut voir ... donc il peut ne pas être vu que c'est la table déroulante, pour le faire voir que je fais cette fonction, pour l'auto-défilement ...

maintenant son travail à la dernière rangée, mais après que nous sélectionner les lignes supérieures autoscroll ne se déplacera pas au-dessus de la position exacte TR bien que le "tranid" passé est correct ... Je suis foutu avec cela ... est-il une autre solution soignée pour y parvenir ....

Répondre

0

si vous avez plusieurs tables avec quantité de masse de lignes que vous pouvez utiliser jquery Descendant Selector en faisant quelque chose comme:

Tableau

<table id="table_1"> 
    <tr><td>1</td></tr> 
    <tr><td>2</td></tr> 
    <tr><td>3</td></tr> 
    <!-- .... --> 
    <tr><td>102</td></tr> 
    <tr><td>103</td></tr> 
</table> 

jQuery

$("#table_1 tr:eq(100)").css(/*...*/); 

ou si vos lignes ont un ID et/ou si vous utilisez l'inser tions,

$("#table_1 tr#row_100").css(/*...*/); 
+0

merci pour votre réponse, pourriez-vous vérifier le code que j'ai posté ci-dessus ... – soorajthomas

1

Vous pouvez simplement utiliser un #id selector ici (ce qui est le moyen le plus rapide aussi), comme ceci:

$("#row_100"); 
+0

merci, mais même id est différent tableau, je dois sélectionner avec table id ... – soorajthomas

+4

@soorajthomas - whoa maintenant, c'est un problème, les ID doivent être uniques * dans la page *, ils ne devrait jamais être répété. Pouvez-vous coller votre balisage? –

4

Pourquoi ne pas simplement utiliser le Selec JQuery tor?

$("#row_100"); 

Si vous sélectionnez une certaine ligne dans des tables différentes, peut-être vous devriez envisager d'attribuer id pour vos tables et class à la ligne:

<table id="first_part"> 
     ... 
     <tr class="special">...</tr> 
     ... 
    </table> 

    <table id="second_part"> 
     ... 
     <tr class="special">...</tr> 
    </table> 

Et puis sélectionnez à l'aide quelque chose comme $("#first_part .special").

0

Juste pour être complet, si row_100 signifie la 100ème ligne, vous pouvez aussi le faire

$("tr:eq(99)") - qui choisirait l'instance de 100 tr si vous avez plus d'une table, nous la id de table avant la tr:

$("#myTable tr:eq(99)")

EDIT

Bon alors je l'ai testé cela et au moins sélectionne la ligne correcte donnée

var selector = "#trtable tr:eq(" + tranid + ")"; 
$(selector).scrolltop(this.top); 
+0

J'utilise ci-dessous le code – soorajthomas

+0

var rowpos = $ ('#' + tranid) .position(); $ ('# trtable'). ScrollTop (rowpos.top); – soorajthomas

+0

qui consiste à autoscroll à la ligne sélectionnée dans le tableau déroulant, mais pour certains tr est son ne fonctionne pas .. – soorajthomas

Questions connexes