使用JQuery循环遍历表以检查复选框的状态

时间:2014-09-05 12:13:59

标签: javascript jquery

我正在尝试遍历表并检查是否选中了复选框。如果它是我想将它存储在Array但是我似乎无法弄清楚如何循环。这是我jsfiddle

的链接

http://jsfiddle.net/u3po26zj/

这是我的代码:

html:

<a href="#" id="deleteBtn">Delete</a>
<table id="tweets_table">
    <thead>
        <th>Checkbox</th>
        <th>Random</th>
    </thead>
    <tr>
        <td><input type="checkbox" name="delete_tweet[]" value="0"/></td>
        <td>Row 1</td>
    </tr>
    <tr>   
        <td><input type="checkbox" name="delete_tweet[]" value="0"/></td>
        <td>Row 2</td>
    </tr>
    <tr>   
        <td><input type="checkbox" name="delete_tweet[]" value="0"/></td>
        <td>Row 3</td>
    </tr>
</table>

js

//按下按钮时,请调用此功能......

$('#deleteBtn').click(function(){
    //Loop through the table and see which checkboxes are checked.
    //If checked add to an array
    console.log('Clicked');   //Start loop 
    $('#tweets_table tr').each(function(i, row){
       //Reference all the stuff I need
        var $row = $(row),
            $check = $row.find('input:checked');

        $check.each(function(i, checkbox){
           var $checkbox = $(checkbox) 
        });
    });

});

我想知道如何获取复选框。

6 个答案:

答案 0 :(得分:0)

您可以使用jQuery对所选复选框进行选择。像这样:

 var $checked = $('input[type="checkbox"]:checked');

以下是您的回答:http://jsfiddle.net/u3po26zj/3/

答案 1 :(得分:0)

Jquery doc网站上有一个关于这个http://api.jquery.com/checked-selector/

的例子
<script>
var countChecked = function() {
  var n = $( "input:checked" ).length;
  $( "div" ).text( n + (n === 1 ? " is" : " are") + " checked!" );
};
countChecked();

$( "input[type=checkbox]" ).on( "click", countChecked );
</script>

答案 2 :(得分:0)

尝试.map()

$('#deleteBtn').click(function() {
    var array = $("#tweets_table").find("input:checkbox:checked").map(function() {
        return this.value;
    }).get();
    console.log(array);
});

Demo

答案 3 :(得分:0)

从你的小提琴到我的fiddle

$('#tweets_table input[type=checkbox]:checked').parents('tr').remove();
  1. 在推文表中选中所有选中的复选框。
  2. 找到其父行。
  3. 删除父行。

答案 4 :(得分:0)

使用Jquery循环遍历所有输入类型复选框:

不要忘记在doc ready event ...

中添加点击处理程序
$(document).ready(function(){
    $('#buttonId').click(function(){
        var myArray = {};
        $('#table').find('input[type=checkbox]').each(function(idx, ele){
           var checkbox = $(this);
           //Do what you'd like here
           if(checkbox.is(':checked')){
              myArray[idx] = checkbox;
           }
       });
    });
});

答案 5 :(得分:0)

使用此功能,您可以使用包含已选中数组中的已选中复选框

    //When the button is pressed call this function...
$('#deleteBtn').click(function(){
    //Loop through the table and see which checkboxes are checked.
    //If checked add to an array
    selected = $("#tweets_table tr td input[type='checkbox']:checked");    
    arraySelected = [];
    for (var i = 0; i < selected.length; i++){
     arraySelected[i] = $(selected[i]).parent("td").parent("tr")[0];   
    }
    console.log(arraySelected);
});