2010-09-09 14 views
2

J'ai l'extrait de code suivant dont je n'ai pas accès au balisage pour ajouter des identifiants/classes.supprimer des cases à cocher avec certaines valeurs

Ce que je dois faire est de supprimer toutes les cases qui ont certaines valeurs. Il existe une dizaine de valeurs qui, si l'une des cases a ces valeurs, doit être supprimée du balisage. En plus de cela, j'ai également besoin de supprimer son texte associé "Ajouter" en même temps qui est directement avant cette entrée de case à cocher. Comment viser uniquement ces entrées de case à cocher et le texte "ajouter" associé pour la suppression?

EDIT: disons que les valeurs sont 1234, abcd, efgh, ijkl, 54330, ll64, etc ... J'ai besoin de vérifier ces valeurs et d'autres.

<table width="100%"cellpadding="0" cellspacing="0"><tr> 
<td valign="top"> 
<b><FONT class="pricecolorsmall colors_productprice">Sale Price: £4.95 </font></b> 
<br /><div class="337">Add</div> <input type="checkbox" name="ProductCode2" 
value="480GCFD"> 
</td> 
</tr></table> 
</td> 
<td valign="top" width="25%"> 
<table width="100%"cellpadding="0" cellspacing="0"><tr> 
<td valign="top"> 
<b><font class="pricecolorsmall colors_productprice"><font class="smalltext colors_text"><b>Sale Price </b></font> £1.00 </font></b> 

<br /><div class="337">Add</div> <input type="checkbox" name="ProductCode2" 
value="LL64"> 
</td> 
</tr></table> 
</td> 
<td valign="top" width="25%"> 
<table width="100%"cellpadding="0" cellspacing="0"><tr> 
<td valign="top"> 
<b><FONT class="pricecolorsmall colors_productprice">Sale Price: £8.50 </font></b> 
<br /><div class="337">Add</div> <input type="checkbox" name="ProductCode2" 
value="54330"> 
</td> 
</tr></table> 
</td> 

<td valign="top" width="25%"> 
<table width="100%"cellpadding="0" cellspacing="0"><tr> 
<td valign="top"> 
<b><FONT class="pricecolorsmall colors_productprice">Sale Price: £4.95 </font></b> 
<br /><div class="337">Add</div> <input type="checkbox" name="ProductCode2" 
value="460GCRS"> 
</td> 
</tr></table> 

Répondre

3

Vous pouvez placer les valeurs à supprimer dans une matrice et filtrer pour ces valeurs.

var valuesToRemove = ["460GCRS","54330","480GCFD"]; 

$('input').filter(function() { 
    return $.inArray(this.value, valuesToRemove) > -1; 
}).prev().remove().end().remove();​ 

Voici un exemple qui enlève 3 des 4 entrées vous avez posté: http://jsfiddle.net/3aPLU/

+0

C'est exactement ce que je cherchais et fonctionne parfaitement. Je savais que je pourrais utiliser un tableau plutôt que 10 lignes distinctes pour les suppressions juste ne savais pas comment le faire et ne savais pas comment cibler le div précédent. A appris un nouveau terme de Jquery aujourd'hui aussi. ".end() a dû chercher celui-là, THX – user357034

+0

@user - De rien, ça a marché.: O) – user113716

0

Cet extrait supprime tous les éléments <input> avec un nom de ProductCode2. Faites-moi savoir si ce n'est pas ce dont vous aviez besoin.

$(function() { 
    $('input[name="ProductCode2"]').each(function() { 
     $(this).prev('div').remove(); 
     $(this).remove(); 
    }); 
}); 
+0

Ce n'est pas utile car il supprime toutes les entrées et le texte associé indépendamment de la valeur – user357034

+0

Vous pouvez utiliser '$ ('entrée [valeur = "yourValue"] ') 'au lieu de' $ (' input [name = "ProductCode2"] ') '. – jwueller

0

Pour trouver la case à cocher par la valeur que vous pouvez utiliser jQuery puis appelez remove:

$('input[value="ValueYouAreLookingFor"]').remove(); 

Pour retirer le div avant ci-dessus, vous appelez pourrait faire la même chose, mais pas en arrière et retirer le div :

$('input[value="ValueYouAreLookingFor"]').prev('div').remove(); 
+0

C'est très bien, donc j'en aurai besoin de 10 mais n'aborde pas le texte – user357034

+0

@ user357034 Vous devez le faire pour chaque valeur sur laquelle vous voulez baser le sélecteur. L'instruction 'prev ('div')' couvrira le texte dans le 'div'. Si vous ne voulez pas un paquet d'instructions, vous pouvez envelopper l'appel dans une fonction et lui passer une liste de valeurs et faire une boucle sur la liste pour chaque valeur. – Kelsey