【问题标题】:Get the ID from "append(<tr><td="ID">..."从 "append(<tr><td="ID">..." 获取 ID
【发布时间】:2017-05-08 16:44:42
【问题描述】:

我正在用从 firebase 数据库中获取的一些数据填充一个表,为此我正在使用 append()

$("#table_body").append("<tr><td>" + nome + "</td>" +
                          "<td>" + marca + "</td>" +
                          "<td>" + modelo + "</td>" +
                          "<td>" + setor + "</td>" +
                          "<td>" + responsavel + "</td>" +

                          "<td><div buttons>"+
                                  "<button>Delete</button>"+" "+
                                  "<button>Edit</button>"+
                                "</div></td></tr>");

但是,我不知道如何使用表格每一行上的“删除”和“编辑”按钮,我不应该有每一行的 ID 吗?但是,如果行是动态添加的,如何获取每行的 ID?

【问题讨论】:

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


    【解决方案1】:

    您的数据模型中有一个对象 ID ...将其作为属性添加到行中。

    然后使用遍历到closest() 行来隔离实例

    以下假设添加了类的按钮:

    <tr data-id="idFromFirebaseObject">
        .... 
        <button class="delete-btn">Delete</button>
    

    然后使用事件委托来说明在运行时还不存在的元素

    $("#table_body").on('click','.delete-btn', function(e){
       // "this" is element event occurred on
       var $row = $(this).closest('tr'),
           rowId = $row.data('id');
           // do your thing with FB then in success callback remove row
           ....
          $row.remove();
    })
    

    【讨论】:

    • 对不起,回答迟了,我之前无法测试...好吧,现在我实际上尝试过测试,我无法理解...您所说的“idFromFirebaseObject”是什么意思? “而 rowId = $row.data('id');” “id”与“idFromFirebaseObject”是否相同?
    • 您添加到 firebase 的每个对象在保存时都会获得一个唯一标识符
    • 我正在使用 push() 来保存数据,因此它会自动为对象生成一个 ID,我可以使用 .key 获取此对象的引用,但我在另一个 firebase 上添加对象页面,并在此页面上列出它们,所以我在如何获取此参考时遇到了麻烦......
    • 与您获得modelonome 等的方式相同
    • 我很确定这是正确的做法,但我无法从 firebase 获取自动生成的 ID,但这会改变主题,我将创建另一个主题,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多