2012-05-25 4 views
2

Je dois pouvoir copier une ligne d'une table à l'autre en utilisant jQuery lorsqu'une case à cocher de cette ligne est cochée.Copier une ligne de table d'une table à une autre en utilisant jQuery

J'ai essayé d'utiliser la méthode .clone() mais cela avait un comportement très étrange. Même si le jQuery ciblait spécifiquement les lignes de la deuxième table, lorsqu'il était copié sur le premier, il pouvait toujours être ciblé. Donc clone() n'est pas correct ou j'ai besoin d'autre chose.

$('#offers tbody tr td input.checkbox:not(:checked)').click(function (e) { 
    var row = $(this).closest('tr'); 
}); 
+0

Ce qui pourrait encore être ciblé par ce ? – Jon

+0

@Jon Lorsque la ligne de la deuxième table a été clonée et que le clone a été ajouté à la première table, il peut toujours être ciblé par le sélecteur jQuery illustré ci-dessus. – ediblecode

Répondre

6
$('#offers tbody tr td input.checkbox:not(:checked)').on('change', function (e) { 
    var row = $(this).closest('tr').html(); 
    $('#otherTable tbody').append('<tr>'+row+'</tr>'); 
}); 

Voir en action! http://jsfiddle.net/3BZp4/1/

Clone également DEVRAIT travailler pour vous et non leur future sélection:

http://jsfiddle.net/AkVTw/1/

Maintenant, avec captures pour décochant selon commentaires:

http://jsfiddle.net/wGGDb/

+0

Votre exemple ne fonctionne pas. Lorsque vous le décochez, il copie toujours à l'autre table – ediblecode

+0

vous n'avez jamais spécifié le comportement souhaité. Veuillez décrire ce que vous aimeriez voir plus en détail. Devrait «décocher» le retirer de la deuxième liste? Quel est votre objectif ici? – Fresheyeball

+0

'quand une case à cocher dans cette rangée est vérifiée. 'Assez sûr que cela signifie que quand il n'est pas coché, il ne devrait pas copier cette ligne. – ediblecode

Questions connexes