2012-08-08 4 views
0

Je supprime des lignes de table avec ce code jquery comme sur la capture d'écran.Jquery Checked Selector

$(":checked").each(function() { 
    $(this).parent().parent().remove() 
}); 

enter image description here

Quand je cochez la case dans la balise th et cliquez sur Supprimer également cette première ligne de tr supprimé. Je coche toutes les cases avec ce code $ (": coché") Comment sélectionner après la première case à cocher?

+0

en utilisant '' .parent est très fragile() parent() et cassera si vous changez votre structure HTML.. Si vous essayez de trouver le 'tr', vous devriez utiliser' .parent ('tr') ' –

Répondre

1

Essayez ceci:

$(":checked").filter(":not(:eq(0))").each(function() { 
    $(this).parent().parent().remove() 
}); 

Alternativement, si votre tête de table est dans la balise thead et votre corps était dans la tbody tag, vous pouvez utiliser quelque chose comme ceci:

$("tbody tr :checked").each(function() { 
    $(this).parent().parent().remove() 
}); 
+0

merci ça marche (le second est bon) –

3

Quelque chose comme cela devrait fonctionner:

jsFiddle Example

$(":checked").not(':eq(0)').each(function() { 
    $(this).parent().parent().remove() 
}); 
+1

Très utile, merci. –

+0

fonctionne mais pas correct. Il supprime après la première sélection. –

+0

@ CihanKüsmez, il y a une autre réponse si vous ne l'avez pas remarqué. Lequel dans votre configuration bootstrap-esque devrait fonctionner – Alexander

0

Ajouter une classe sur la première case à cocher, par laquelle toutes les cases à cocher sont cochées/décochées sur l'événement click.

De cette manière, toutes les autres cases à cocher seront différenciées de la première.

Et utilisez le script suivant.

$(function() { 
    $('#test').click(function() { 
     $(":checked").not('.maincheckbox').each(function() { 
      $(this).parent().parent().remove() 
     }); 
    }); 
}); 

Voici la démo: jsfiddle