0

我有一张带复选框的桌子。

<tbody id="myTable">
<tr>
    <td>1</td>
    <td class="userName">Bob</td>
    <td><input id="u1" name="user" type="checkbox" value="1"></td>
</tr>
<tr>
    <td>6</td>
    <td class="userName">Izya</td>
    <td><input id="u6" name="user" type="checkbox" value="6"></td>
</tr>
</tbody>

如何找到所有userName已检查输入的所有 s 并将这些名称放入数组中?

4

3 回答 3

2

尝试

var usernames = $('#myTable')
    .find('tr:has(input.user:checked)')
    .find('.userName').map(function(){
        return $(this).text();
    }).get();

它将创建一个包含所有用户名的数组,其相关复选框已选中

于 2014-04-20T15:28:26.363 回答
1

也许使用这个脏代码:

var tr = $('#myTable > tr'), un = $('#myTable .userName'), check = $('#myTable input[type="checkbox"]'), users = [];
for (var i = 0; i < tr.length; i ++) {
    if (check[i].checked) {
        users.push(un[i].innerText);
    }
}

然后在数组users中,用户在那里。

于 2014-04-20T15:19:26.287 回答
0
<tbody id="myTable">
<tr>
    <td>1</td>
    <td class="userName">Bob</td>
    <td><input id="u1" name="user" type="checkbox" value="1"></td>
</tr>
<tr>
    <td>6</td>
    <td class="userName">Izya</td>
    <td><input id="u6" name="user" type="checkbox" value="6"></td>
</tr>
</tbody>

您应该使用 class 而不是 id,因为 id 对于页面应该是唯一的。

使用 jQuery:

$('input[type="checkbox"]').prop('checked').siblings('.userName').text();

或者,如果您需要输入的名称属性:

$('input[type="checkbox"]').prop('checked').attr('name');

http://api.jquery.com/category/selectors/

于 2014-04-20T14:50:13.613 回答