使用Javascript如何遍历包含复选框的div并从每个复选框中选中值

时间:2013-09-30 19:29:09

标签: javascript

我有一个表,每行包含一个包含8个复选框的单元格(Column4)

这是一个例子

   <table id="enc-assets" class="table">
    <thead>
        <tr><th>Column1</th><th>Column2</th><th>Column3</th><th>Column4(CONTAINS OPTIONS)</th>
    </thead>
    <tbody>
    <tr>

        <td id="sc-isrc"></td>
        <td id="sc-filename"></td>
        <td id="sc-path" hidden></td>
        <td id="sc-platforms">
            <div id="sc-inline" style="display: inline-block;">
                <div >
                    <div ng-repeat="p in products ">
                        <label id="enc"><input id="Platform" ng-checked="prod[p.name]"  ng-model="prod[p.name]" ng-init="prod[p.name] = true" type="checkbox"/></label>                                   
                    </div>
                </div>
            </div>

        </td>
        <td>
        </td>
        <td><br/><br/><button id="enqueuebtn"  type="button" ng-click="Show(test)" class="btn-primary"></button></td>
    </tr>
        </tbody>
</table>

我试图遍历每一行,并将每个单元格的值分配给一个对象。

我在从包含8个复选框的单元格中检查值时遇到问题。我可以从其他单元格中获取值。

我尝试了以下内容:

$("#enc-assets tbody tr").each(function() {
  var message;
  message = new Object();
  message.isrc = $(this).find('#sc-isrc').text();
  message.path = $(this).find('#sc-path').text();
  $("#sc-platforms div div").each(function() {
    var platform, selected;
    selected = $(this).find('#Platform div label input').checked;
    if (selected === true) {
      platform = $(this).find('#enc').text();

这是我不确定是否有效的部分:

  selected = $(this).find('#Platform div label input').checked;

我是否在此处使用正确的嵌套来获取复选框中的值?

1 个答案:

答案 0 :(得分:0)

试试这个:

jsFiddle here

$("#enc-assets tbody tr").each(function() {
    var message;
    message = new Object();
    message.isrc = $(this).find('#sc-isrc').text();
    message.path = $(this).find('#sc-path').text();
    $("#sc-platforms>div>div").each(function() {
        alert( $(this).attr('id') );
        var platform, selected;
        selected = $(this).find('#Platform');
        if(selected.is(':checked')) {
            alert('Checked');
        }
        platform = $(this).find('#enc').text();
        alert(platform);
    }); //END each #sc-platforms>div>div
}); //END each #enc-assets tbody tr