2014-11-02 31 views
0

我有一個表(1)與每個行復選框。當我點擊一個複選框時,它的值顯示在另一個表(2)中。在表(2)中,每行都有一個刪除選項。如果我點擊刪除,該行將被刪除。以同樣的方式,如果我取消選中表格(1)中的複選框,表格(2)中的相應行應該被刪除。所以我應該如何刪除一行取消選中。我已經將這部分代碼放在其他塊中。刪除一行取消選中

$(document).ready(function(){ 
    $('.isSelected').click(function() { 

    var pdtname = $(this).attr('data-productname'); 

    if ($('.isSelected:checked').length > 0) { 
     $("#result").show(); 

     var table = $('<table></table>').addClass('tfoo'); 
     var row = $('<tr></tr>').addClass('rfoo').text(pdtname); 
     var link = $('<a href="javascript:void(0);">/a>').addClass('lfoo').text('Remove'); 

      row.append(link); 
      table.append(row); 
      $('#result').append(table); 

      $("#result").on('click','.lfoo',function(){ 
      $(this).parent().parent().remove(); 
      }); 

    } else { 
      $('.isSelected[data-productname="pdtname"]').on('click','.lfoo',function(){ 
         $(this).parent().parent().remove(); 
        }); 
       } 
      }); 
     }); 

HTML

<div id="result" ></div> 

<td><form method='post' action='<c:url value="compareproducts.html"/>' > 
      <input class="isSelected" type="checkbox" name='id' value='${product.id}' 
        data-productname="${product.productName}" > 
    </form> 

+0

這是一個有點困難,沒有看到與ID和班級的HTML代碼。我最好的猜測是'else'部分的代碼是在某個事件(複選框)上添加一個處理程序到'click'事件,並且它本身並沒有真正刪除任何東西......但這是一個猜測。 – 2014-11-02 17:04:44

+0

請檢查編輯 – user3844782 2014-11-02 17:08:30

+0

正如我在前面的評論中提到的那樣,修改'else'部分以執行刪除操作而不是爲'click'事件添加處理程序似乎有效:http://jsfiddle.net/4g8nL9t5/ – 2014-11-02 17:21:15

回答

0

根據我們的聊天對話。快速解決方案是將data-productname添加到表中,因此當您取消選中複選框時,它將刪除具有相同data-productname的表格(請注意,爲此,產品名稱必須是唯一的)。

你可以看到這個的jsfiddle一個例子:http://jsfiddle.net/4g8nL9t5/1/

+0

一個快速更新,所以表被完全刪除(而不是隻有tbody),所以當點擊刪除鏈接時,複選框會自動取消選中:http://jsfiddle.net/4g8nL9t5/3/ – 2014-11-02 18:22:25

+0

是的,這也起作用了。 – user3844782 2014-11-03 04:56:41

+0

我不太清楚你想要達到的目標,但是我回答了可能的答案。 – 2014-11-03 17:34:51