javascript - 如何使用 Jquery 从表中选择仅 1 行

标签 javascript jquery mysql ajax

我创建了一个表,其中显示了多条记录。我想使用 Ajax 添加更新功能。

我编写了以下代码,当我单击任何行时,它使所有行都可编辑。我只想编辑我单击的特定行。

请指导我如何实现这一目标。

<button type="button" 
class="updateUser btn btn-primary btn-xs" data-userId="<?php echo $id; ?>">
<span class="glyphicon glyphicon-pencil"></span>
</button>


    $(document).on("click", ".updateUser", function(){
         $('tr td:nth-child(2)').each(function () {
                var html = $(this).html();
                var input = $('<input type="text" />');
                input.val(html);
                $(this).html(input);
            });

        });

enter image description here

编辑 - HTML 代码

<table class="table table-hover">                                       
    <thead>
        <tr>
            <th>#</th>
            <th>Username</th>
            <th>Password</th>
            <th>Role</th>
            <th>Edit</th>
            <th>Delete</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>"PHP Dynamic ID "</td>
            <td>"PHP Dynamic Username "</td>
            <td>"PHP Dynamic Password "</td>
            <td>"PHP Dynamic Role "</td>

            <td>                                                        
                <button type="button" class="updateUser btn btn-primary btn-xs" data-userId="<?php echo $id; ?>">
                    <span class="glyphicon glyphicon-pencil"></span>
                </button>
            </td>
            <td>
                <button class="deleteUser btn btn-danger btn-xs" type="button" data-userId="<?php echo $id; ?>">
                    <span class="glyphicon glyphicon-remove"></span>                                    
                </button>
            </td>
        </tr>
    </tbody>                                        
</table>

最佳答案

它选择每一行,因为这正是 $('tr td:nth-child(2)') 告诉它要做的。

我也不喜欢在“文档”上不必要地绑定(bind)委托(delegate)事件;它使您的处理程序运行过于频繁,只是为了检查您是否单击了相关内容。

最好将事件绑定(bind)到更靠近相关标签的地方——要么在编辑按钮本身(然后向上遍历以找到所需的表格行)上,要么在表格上(如此处所示,以防您需要添加行以编程方式并且不想将单个事件重新绑定(bind)到新行。)

(现在更新了答案,因为您已经编辑了问题以表明您想要捕获按钮上的点击而不是整行上的点击)

$('table').on('click', '.updateRow', function() {
    var myTD = $(this).closest('tr').find('td:eq(1)'); // gets second table cell in the clicked row

    // Now do whatever to myTD, such as:
    $('td').removeClass('selected'); // remove any previous selections
    myTD.addClass('selected');
  });
table {border-collapse:collapse}
td {border:1px solid}
.selected {background-color: red}
.updateRow {color: #00F; text-decoration:underline}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table>
  <tr><td class="updateRow">Edit:</td><td>A     </td><td>B  </td><td>C     </td><td>Easy as</td></tr>
  <tr><td class="updateRow">Edit:</td><td>One   </td><td>Two</td><td>Three </td><td>Or simple as</td></tr>
  <tr><td class="updateRow">Edit:</td><td>do    </td><td>re </td><td>me    </td><td>baby</td></tr>
  <tr><td class="updateRow">Edit:</td><td>That's</td><td>how</td><td>simple</td><td>love can be</td></tr>
</table>

关于javascript - 如何使用 Jquery 从表中选择仅 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227063/

相关文章:

mysql - 从不存在的表 B 中获取数据

javascript - 如何使用 img HTML 调整输入大小

javascript - 如何根据确定的属性值对 JavaScript 中的对象数组进行排序?

javascript - array.concat 与 angular.copy

MySQL根据另一个表的条件进行查询

mysql - 我想通过DQL获取与文本相关的记录

JavaScript 构造函数在定义属性时返回解析错误

javascript - 调用函数.oninput

jquery - 在现有页面上实现流体设计

javascript - jquery 选择器 ie8 问题