需要读取水平HTML表上所选复选框的值

时间:2018-04-16 13:52:31

标签: javascript jquery html

我有一个带水平标题的表,想要获得所选复选框的值。 选中该复选框后,它应该返回所有行的该列的值。这是代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
function myfunc(ele) {

 var values = new Array();
       $.each($("input[name='case[]']:checked").closest("tr").siblings("tr"),
              function () {
                   values.push($(this).text());
              });
    
       alert("val---" + values.join (", "));
 }
     

$(document).ready(function() {
    $("input.case").click(myfunc);
});
</script>
<table border="1">
<tr>
  <th>Select</th>
   <td align="center"><input type="checkbox" class="case" name="case[]" value="1"/></td>
    <td align="center"><input type="checkbox" class="case" name="case[]" value="2"/></td>
    <td align="center"><input type="checkbox" class="case" name="case[]" value="3"/></td>
    </tr>
    <tr>
    <th>Cell phone</th>
    <td>BlackBerry Bold 9650</td>
    <td>Samsung Galaxy</td>
    <td>Droid X</td>
    </tr>
    <tr>
      <th>Rating</th>
       <td>2/5</td>
       <td>3.5/5</td>
       <td>4.5/5</td>
    </tr>
    <tr>
      <th>Location</th>
      <td>UK</td>
      <td>US</td>
      <td>REB</td>
    </tr>
    </table>

1 个答案:

答案 0 :(得分:1)

由于您在html中包含value="n",其中n是1, 2, 3,我们可以根据您的表格使用该信息获取正确的列。

您需要将click事件更改为changed事件以获取该复选框。连接change事件后,您可以使用this属性检查checked(复选框)是否为.checked。如果是,则获取该元素的value。然后,您可以使用jQuery查找每列(1,2或3)的tr行,并获取nth子项,其中n将再次成为{{1}由value找到。你现在有那个孩子的html。通过this.value获取它的HTML。随便随便。

我还在您的表格中添加了.innerHTML,以便更轻松地查询。

编辑:因为您说表格中的数据已生成,您的html中无法使用id。然后,我们仍然可以通过value获取当前列并通过$(this).parent().index()查找子项的长度来执行此操作。然后我们可以从var childrenAmt = $('#table tr').length;循环并获取{{1}找到的列}}

您可以将数据推送到数组中并在需要时返回。

&#13;
&#13;
1 to childrenAmt
&#13;
$(this).parent().index();
&#13;
&#13;
&#13;