一个关于jquery选择器的问题

现在有一个表格,每一个 tr 都有一个数字作为 class 假设选中了一个 tr 如何获取 class 小于等于选中 tr 的所有 tr?

阅读 3k
5 个回答

不应该把tr数字作为class,因为tr绑定的class有很多,完全可以把数字绑定在data-num上面,大概逻辑就是下面这个,可能部分选择器写的不是那么准确

html table:

<table id='example_table'>
    <thead>
        <th>1<th>
        <th>2<th>
        <th>3<th>
    </thead>
    <tbody>
        <tr data-num="1">
            <td>1<td>
            <td>2<td>
        </tr>
        <tr data-num="2">
            <td>1<td>
            <td>2<td>
        </tr>
        <tr data-num="3">
            <td>1<td>
            <td>2<td>
        </tr>
    </tbody>
</table>

js:

$('#example_table tr').on('click', function(e) {
    var select_tr_num = $this.data('num');
    var request_trs = [];
    $.each($('#example_table tr'), function(i, obj) {
        if (!obj.data('num') > select_tr_num) {
            select_tr_num.push(obj);
        }
    });
    console.log(request_trs );
}); 

只能循环选取了,数字大小是多少啊

一楼说的很对哈,一般没有人把class命名为数字,往往都是添加一个自定义属性

遍历所有class的值,然后比较存储。(ps:但是用数字作为class,不太规范吧。)

用class排序,然后获取目标tr前面所有的tr

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题