2010-09-09 68 views
2

我有下面的代码片段,我没有访问标记来添加id的/类。删除某些值的复选框

我需要做的是删除任何具有特定值的复选框。有10个左右的值,如果任何复选框有这些值,他们需要从标记中删除。除此之外,我还需要在此复选框输入之前同时删除其相关联的文本“添加”。我将如何定位这些复选框输入和关联的“添加”文本以便删除?

编辑:可以说,值是1234,abcd,efgh,ijkl,54330,ll64等......我需要检查这些和其他值。

<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> 

回答

3

您可以将要删除的值放入数组中,然后筛选这些值。

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

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

下面是一个例子,消除你张贴的4个输入3:http://jsfiddle.net/3aPLU/

+0

这正是我一直在寻找和完美运作。知道我可以使用一个数组,而不是10个单独的行来删除只是不知道该怎么做,不知道如何定位以前的div。今天学了一个新的Jquery术语,“.end()必须看起来那个,THX – user357034 2010-09-09 00:27:11

+0

@user - 不客气,很高兴它工作。:o) – user113716 2010-09-09 00:28:59

0

这个片段删除所有<input>元素与ProductCode2的名称。让我知道这是不是你需要的。

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

这是没有帮助的,因为它消除所有的输入和相关的文本,无论价值 – user357034 2010-09-09 00:11:47

+0

你可以用'$(“输入[值=“yourValue”]')'而不是'$('input [name =“ProductCode2”]')'。 – jwueller 2010-09-09 00:19:17

0

要查找值的复选框,你可以使用jQuery,然后调用remove

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

以上面之前删除div叫你可以做同样的事情,但后退一步,删除div

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

这很好,所以我将需要其中的10个,但不处理文本 – user357034 2010-09-09 00:12:26

+0

@ user357034您需要为每个想要基于选择器的值执行此操作。 'prev('div')'语句将覆盖'div'中的文本。如果你不想要一堆语句,你可以将这个调用包装在一个函数中,并将它传递给一个值列表,并在列表中为每个值循环。 – Kelsey 2010-09-09 00:15:42