2010-09-09 89 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