【发布时间】:2013-03-27 17:20:29
【问题描述】:
这是我得到的:
gridComplete: function() {
var doneButton = $('<input>', {
type: 'button',
value: 'Done',
click: function() {
alert("Done!");
}
});
console.log("HTML:", doneButton.html());
var ids = $(this).jqGrid('getDataIDs');
var self = this;
_.each(ids, function(id) {
$(self).jqGrid('setRowData', id, {
MarkDone: doneButton.html()
});
});
}
如果我只是尝试插入 doneButton 对象,jqGrid 单元格会呈现 [object Object] 而不是实际的按钮。因此,我可以推断它期待原始 HTML。但是,doneButton.html() 返回一个空字符串...大概是因为我还没有将 doneButton 对象附加到文档上。
用 jQuery 来做这件事有诀窍吗?我更喜欢更简洁/更安全的语法来生成 HTML 标记,但我可以这样做:
gridComplete: function() {
var doneButtonHtml = "<input type='button' value='Done' onclick=\"alert('Done');\" />";
var ids = $(this).jqGrid('getDataIDs');
var self = this;
_.each(ids, function(id) {
$(self).jqGrid('setRowData', id, {
MarkDone: doneButtonHtml
});
});
},
按预期呈现按钮。
【问题讨论】:
标签: javascript jquery html jqgrid