如何将对象与表行相关联?

时间:2016-01-29 21:20:41

标签: javascript jquery arrays javascript-objects

我在javascript中有一个对象数组。我表中的每一行代表数组中一个对象的大约3个属性。我有一个<input type="text"/>模糊事件的jquery事件处理程序。我希望能够更新数组中的对象。问题是我不知道哪一行与数组中的哪个对象相关联。

有没有办法可以将每个对象的引用附加到行?我尝试直接将其附加到下面,但是我无法访问attachedObject当模糊事件被触发时。

var row = table.insertRow(-1);
row.attachedObject = myObject;

这是我的模糊方法,我尝试设置附加对象的title属性的值。不幸的是,在调试时,附加对象显示为未定义,即使它显示在附加到行的方法中。

    $(document).on('blur', '.name-cell', function(e) {
        var value = $(event.target).val();
        var row = $(event.target).closest("tr");
        row.attachedObject.title = $(event.target).val();
        e.preventDefault();  // to prevent the default action of anchor elements
    });

1 个答案:

答案 0 :(得分:0)

将对象标识符保存为输入属性或表行属性:

<input type="text" data-target="<obj.id>" ... />

<tr data-target="<obj.id>">

这将允许您稍后在模糊处理函数中获取该值:

$(document).on('blur', '.name-cell', function(e) {
        var value = $(event.target).val();
        var row = $(event.target).closest("tr");
        var id = $(row).attr('data-target');
        row.attachedObject.title = $(event.target).val();
        e.preventDefault();  // to prevent the default action of anchor elements
    });