【问题标题】:Edit table row javascript编辑表格行javascript
【发布时间】:2017-06-09 09:26:26
【问题描述】:

我有一个表格,它是通过 Firebase 动态增加的,我需要在表格的每一行上都有一个 deleteedit 按钮,目前,删除按钮正在工作,但我在编辑时遇到了问题按钮,我看到了一些例子,但我不确定如何使用 append()...

这是我目前所拥有的:

HTML

<table id="tableAssets" class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">

    <thead>
      <tr id="tableHeader">
        <th class="mdl-data-table__cell--non-numeric">Name</th>
        <th class="mdl-data-table__cell--non-numeric">Brand</th>
        <th class="mdl-data-table__cell--non-numeric"> </th>
      </tr>
    </thead>

    <tbody id="table_body"> </tbody>

</table>

JavaScript

rootRef.on("child_added", snap => {

  var assetKey = snap.child("id").val();
  var name = snap.child("name").val();
  var brand = snap.child("brand").val();

  $("#table_body").append("<tr data-id='"+assetKey+"'>"+
                          "<td class='mdl-data-table__cell--non-numeric'>" + name + "</td>" +
                          "<td class='mdl-data-table__cell--non-numeric'>" + brand + "</td>" +

                          "<td class='mdl-data-table__cell--non-numeric'><div buttons>"+
                              "<button class='edit-btn'><i class='material-icons'>mode_edit</i></button>"+" "+                                      
                              "<button class='delete-btn'><i class='material-icons'>delete</i></button>"+" "+
                          "</div></td></tr>");
});

这就是我对编辑按钮的想法:隐藏整行,并使用保存的信息添加一个新行,但使用文本字段,并使用保存按钮更改编辑按钮,但我有不知道我应该怎么做...

$("#table_body").on('click','.edit-btn', function(e){
var $row = $(this).closest('tr');
  $row.hide();

});

【问题讨论】:

    标签: javascript jquery html firebase firebase-realtime-database


    【解决方案1】:

    我建议你这样做:

    1. 有两行,一用于查看,一用于编辑模式。这更容易 维护。
    2. 为整行分配一个 id: $("#table_body").append("&lt;tr id='"+assetKey+"'&gt;
    3. 然后,当单击该编辑按钮时,将 id 传递给某个方法,就像在附加时一样,这样会更容易。你可以使用一些东西 像 onclick 一样调用方法:

    &lt;button class='edit-btn' onclick=edit(\'"+assetKey+"\')&gt;&lt;i class='material-icons'&gt;mode_edit&lt;/i&gt;&lt;/button&gt;

    1. 在编辑时,隐藏单击的按钮行并显示该行的编辑模式。由于它已经渲染,如果你有它会很好用 多行,保持原位: ('#'+id).hide();
    2. 编辑模式行“视图”将显示保存按钮或您需要的任何其他内容。使用相同的技术/策略来调用 save() 方法。
    3. 保存成功后,重建两行并替换它们,使所有内容都整齐并保持一致。

    为了理解这一点,它不仅仅是在文字上,而是在 jsfiddle here 上使用您的代码的功能示例。

    希望对您有所帮助!

    【讨论】:

    • 非常感谢,我今天晚些时候一定会试试这个,我现在正在工作,但是阅读您的回答解决了我对此的很多问题:D
    • 不客气!如果您在此过程中有任何问题,请随时提问:)
    • 对不起,我的回答迟了,我不再从事这个项目了,但我现在在做。当我将data-id 更改为id 时,我发现了一个问题,因为我目前在删除按钮上使用data-id,当我将其更改为id 时,它停止工作......删除按钮代码如下:pastebin.com/YGvK1mhT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2020-01-03
    • 2010-10-02
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多