获取复选框检查的表行数据

时间:2016-10-12 08:49:52

标签: javascript jquery html checkbox

编辑:我想重新解释一下我的问题

我很简单,试图在复选框检查中获取<td>内的锚标记文本 问题是锚标签没有id或类

这是我的表格样本

<table class="wp-list-table widefat fixed striped users">

 <tbody id="the-list" data-wp-lists="list:user">

  <tr id="user-18">
   <th scope="row" class="check-column">
    <label class="screen-reader-text" for="user_18">Select abc</label>
    <input type="checkbox" name="users[]" id="user_18" class="subscriber" value="18">
   </th>


   <td class="username column-username has-row-actions column-primary" data-colname="Username">

    <a href="#">abc</a>
   </td>
</table>

我搜索了一些帖子并试图创建一些功能

<script type ="text/javascript">
 $('#changeit').click(function(){

        var values = [];
        $(".wp-list-table input[name='users[]']:checked").each(function(){
            row = $(this).closest("tr");

        });

        alert($(row).find("a")[0]);




    });

</script>

这给了我锚标记href数据,但我需要用锚标记括起来的文字。

我试过

alert($(row).find("a")[0].text());
alert($(row).find("a")[0].val());
alert($(row).find("a")[0].val);

但他们没有给我锚标记文本。

任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:0)

试试这个:

 function Bindthis() {
        $('#changeit').on('click', function() {
            alert('1'); //this is hitting
            var values = [];
            $('.subscriber').attr('checked', true).each(function() {
                alert('2');
                row = $(this).closest("tr");
            });
        });
    }

答案 1 :(得分:0)

通过遵循一些良好的编码实践,可以轻松追踪这一点。

首先,您需要缩进代码。如果你想编写好的,干净的和无错误的代码,缩进是必须的。没有错误,因为缩进有助于识别不同的范围。

其次,总是寻找日志。我知道您不会查找日志,因为您使用的是alert()而不是console.log(),而且,如果您使用代码打开控制台(F12),您会发现此错误:

Uncaught Error: Syntax error, unrecognized expression: #the-list input[name=users[]]:checked

有了这个,很容易理解选择器语法错误。在互联网上搜索并了解选择器时,您会注意到语法需要一些引号,例如#the-list input[name='users[]']:checked

似乎你不太了解选择器如何工作,所以,为了避免这个问题和未来问题,我建议你阅读一下它们。这样您就可以避免在此重复相同的选择器问题。这是一个很好的参考网站,有一个在线测试人员:http://www.w3schools.com/cssref/css_selectors.asp

答案 2 :(得分:0)

最后我制作了这个适合我的代码

 $(".wp-list-table input[name='users[]']:checked").each(function(){
            row = $(this).closest("tr");
            anchor  = $(this).closest('tr').find("a:first");


        });
        alert($(anchor).text());