如何将2个参数传递给jquery的Find()方法

时间:2016-02-05 20:05:06

标签: javascript jquery jquery-selectors

我创建了一个显示数据的表格,当用户点击Update按钮时,它会将表格单元格转换为用户可以输入数据的输入字段。

当我点击编辑按钮时,它成功地将表格的1个单元格更改为输入字段,但我无法理解如何更改表格的其他单元格,我需要单击更改表格的所有单元格。



$(document).on("click", ".updateUser", function() {
  $(this).closest('tr').find('td:nth-child(2)').each(function() {
    var html = $(this).html();
    var input = $('<input type="text" />');
    input.val(html);
    $(this).html(input);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<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>ID</td>
      <td>Username </td>
      <td>Password </td>
      <td>Role </td>

      <td>                                                        

        <button type="button" class="updateUser btn btn-primary btn-xs" data-userId="<?php echo $id; ?>">
          EDIT BUTTON
        </button>
      </td>
    </tr>
  </tbody>                                        
</table>
&#13;
&#13;
&#13;

我在JSFiddle上添加了示例,请指导我如何实现这一目标。

https://jsfiddle.net/tahakirmani/g7vrskpz/3/

1 个答案:

答案 0 :(得分:3)

从选择器中删除nth-child(2)nth-child(2)仅导致第n个(在本例中为第二个)元素被选中并通过输入框循环/替换。

https://jsfiddle.net/g7vrskpz/4/

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

 });

编辑:仅限前3

https://jsfiddle.net/g7vrskpz/5/

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

 });