2010-11-05 2 views
1

J'ai une table avec quelques tables imbriquées (ce qui est émis, mais un contrôle dotnet je ne peux pas faire quoi que ce soit au sujet)Demandez aux enfants directs avec jquery

Ce que je veux est de déplacer toutes les lignes qui sont un enfant direct, mais si loin de ne pas fonctionner comme je le pensais.

J'ai une configuration de base qui prend juste toutes les lignes, aussi celles des tables imbriquées, j'ai commenté quelques autres que je rectifiées qui ne donne pas les résultats souhaités

ce que je veux qu'il déplace la lignes complètes, même si la ligne a une table imbriquée et DonT compter les lignes de cette table dans la fonctionnalité de tranche

Vous pouvez voir ma configuration à jsfiddle

Toute aide serait appréciée

Répondre

2

Vous pouvez utiliser :not() dans tous les cas, ou si vous connaissez child selector (>) vos conditions de balisage:

$('#tblPropertyDetail tr:not(tr tr)').slice(0, 40).appendTo(".one"); 

You can test it here. L'alternative est:

$('#tblPropertyDetail > tr').slice(0, 40).appendTo(".one"); 

Cependant, cela peut ou peut ne pas fonctionner selon votre DOCTYPE, cela dépend si un élément <tbody> at-il ajouté en là pour vous (par exemple inférée en XHTML). Pour ajouter la sécurité <tbody> vous et faites ceci:

$('#tblPropertyDetail > tbody > tr').slice(0, 40).appendTo(".one"); 
+0

merci je pensais avoir la meilleure solution couverte par $ ('# tblPropertyDetail tr: not (: has (tr))') mais le vôtre a fonctionné parfaitement – nokiko

1

$('#tableID > * > tr, #tableID > tr')

Rappelez-vous que * parce JavaScript le navigateur ajoute automatiquement les éléments tbody.

EDIT:
Correction d'une erreur sur l'ajout automatique des éléments tbody.

+0

JavaScript n'ajoute rien automatiquement, c'est le DOCTYPE qui détermine si c'est déduit par l'analyseur. –

0

Je sais que ma réponse est un peu en retard et jQuery a évolué depuis, mais il y a maintenant une meilleure façon de le faire, il suffit d'appeler children()! :) Vous pouvez même ajouter un sélecteur à la méthode children().

Here's the doc about children() in jQuery..

Questions connexes