Jquery get values of all checked rows in table gridview

后端 未结 5 1242
慢半拍i
慢半拍i 2020-12-15 13:53

I have a table like below


<         
相关标签:
5条回答
  • 2020-12-15 14:25

    This does what you ask for:

    $(document).ready(function() {
        var tableControl= document.getElementById('mytable');
        $('#jqcc').click(function() {
            var obj = new Array();
            $('input:checkbox:checked', tableControl).each(function() {
                var innertext = $(this).parent().next().text();
                obj.push(innertext);
            });
                console.debug(obj); // Write it to the console
        });
    });
    

    ​http://jsfiddle.net/uEr3n/

    0 讨论(0)
  • 2020-12-15 14:26

    First of all add the id as the value parameter of the checkbox as an input without a value is of little real use:

    <table id="mytable">
        <tr><th>checked</th><th>id</th></tr>
        <tr><td><input id="cb1" type="checkbox" name="checker1" value="123" /></td><td>123</td></tr>
        <tr><td><input id="cb1" type="checkbox" name="checker1" value="456" /></td><td>456</td></tr>
        <tr><td><input id="cb1" type="checkbox" name="checker1" value="789" /></td><td>789</td></tr>
    </table>
    

    Then in jQuery, create your array:

    var checkedValues = $("input:checkbox:checked", "#mytable").map(function() {
        return $(this).val();
    }).get();
    alert(checkedValues.join(','));
    

    Working fiddle

    0 讨论(0)
  • 2020-12-15 14:39

    You should do

    $(document).ready(function() {
        var tableControl= document.getElementById('mytable');
       var arrayOfValues = [];
        $('#jqcc').click(function() {
            $('input:checkbox:checked', tableControl).each(function() {
                arrayOfValues.push($(this).closest('tr').find('td:last').text());
            }).get();
        });
    });
    

    arrayOfValues will hold the text inside the last td.

    EDIT of course you could also use map

    $(document).ready(function() {
        var tableControl= document.getElementById('mytable');
       var arrayOfValues = [];
        $('#jqcc').click(function() {
              arrayOfValues =  $('input:checkbox:checked', tableControl).map(function() {
                return $(this).closest('tr').find('td:last').text();
            });
        });
    });
    
    0 讨论(0)
  • 2020-12-15 14:47
    var tableControl = document.getElementById('mytable');
    $('#jqcc').click(function() {
        var result = []
        $('input:checkbox:checked', tableControl).each(function() {
            result.push($(this).parent().next().text());
        });
        alert(result);
    });
    

    See demo

    0 讨论(0)
  • 2020-12-15 14:49

    I want to retrieve (using jquery) a javascript array of all checked ID's in the table.

    Try:

    var ids = $("#mytable tr:has(input:checked)").map(function() {
       var $tr = $(this);
       var id = $tr.find("td:last").text();
       return id;
    }).toArray();
    
    alert(ids.join(", "));
    
    0 讨论(0)
提交回复
热议问题
checkedidtext