如何使用jQuery查找特定元素?

时间:2014-04-20 14:38:36

标签: javascript jquery html jquery-traversing

我有一个带复选框的表。

<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并将这些名称放入数组中?

3 个答案:

答案 0 :(得分:2)

尝试

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

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

答案 1 :(得分: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中,用户就在那里。

答案 2 :(得分: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:

$( '输入[类型= “复选框”]')丙( '检查')的兄弟姐妹( '用户名'。)文本(); ...

或者如果您需要输入的name属性:

$( '输入[类型= “复选框”]')丙( '检查')ATTR( '姓名');

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