我有一个带水平标题的表,想要获得所选复选框的值。 选中该复选框后,它应该返回所有行的该列的值。这是代码。
<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>
答案 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}找到的列}}
您可以将数据推送到数组中并在需要时返回。
1 to childrenAmt
&#13;
$(this).parent().index();
&#13;