2016-05-26 189 views
0

我有一個包含多個複選框的框。我選擇複選框,並選擇我生成的<span>Value(x)</span>在不同的div上。現在我想取消選中該特定複選框的(x)點擊複選框。點擊按鈕取消複選框

實施例:enter image description here

在選擇和取消選擇的複選框的<span>值(X)</span>被來來往往。但反過來並沒有發生。

.reportbox是瓦片的類別(複選框)。 #compareSection是保存按鈕的區域。

代碼我使用:

<script type="text/javascript"> 
     $('.reportBox').click(function() { 
     var selected = $('input[type=checkbox]:checked').map(function(_, el) { 
      selectedCheckbox = el.id; 
      var element = "<p class='selectedReport'>"+ $(el).val() + "</p>" + "<span onclick='removeReport(this, selectedCheckbox)' class='badge badge-notify close-badge'>x</span>"; 
      return "<span id='elementPack'>" + element + "</span>"; 
     }).get(); 
     $("#compareSection").html(selected); 
     }) 

     // this code is for removing the URLs 
     function removeReport(sender, selectedCheckbox) { 
     document.getElementById(selectedCheckbox).checked = false; 
     var div = sender.parentNode; 
     div.parentNode.removeChild(div); 
     } 
    </script> 
+0

代碼在哪裏? – Rayon

+0

我應該上傳它js小提琴嗎? – b0y

+0

任何........ – Rayon

回答

1
<script> 
$(function() { 
    $('.reportBox').click(function() { 
     var selected = $('input[type=checkbox]:checked').map(function(_, el) { 
     selectedCheckbox = el.id; 
     var element = '<p class="selectedReport">'+ $(el).val() + '</p>' + '<span data-target-box="'+el.id+'" class="badge badge-notify close-badge">x</span>'; 
     return '<span id="elementPack">' + element + '</span>'; 
    }).get(); 
    $("#compareSection").html(selected); 
    }); 
    $(document).on('click', 'span[data-target-box]', function(e) { 
     $('#'+$(this).data('target-box')).prop('checked', false); 
     $(this).remove(); 
    }); 
}); 
</script> 
+0

這是工作正常:)但刪除只有交叉,而不是膠囊形狀:( 如何修復它? – b0y

+0

'$(this.parentNode).remove();' 工作:)謝謝Beeeeeeee – b0y

0

上線

var element = "<p class='selectedReport'>"+ $(el).val() + "</p>" + "<span onclick='removeReport(this, selectedCheckbox)' class='badge badge-notify close-badge'>x</span>"; 

您使用selectedCheckbox作爲字符串這意味着它會尋找變量當你點擊它,但是變量是從未在第一個範圍之外定義。你可能想將其更改爲以下:

var element = "<p class='selectedReport'>"+ $(el).val() + "</p>" + "<span onclick='removeReport(this, \'"+selectedCheckbox+"\')' class='badge badge-notify close-badge'>x</span>"; 

因此,它與id作爲然後可以在document.getElementById()使用的字符串調用removeReport(this, 'id_of_element')

相關問題