下面是我得到了什么:是否可以在插入DOM树之前获取jQuery创建元素的HTML?
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的细胞呈现,而不是实际的按钮[对象的对象。因此,我可以推断它期望原始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
});
});
},
它按预期呈现按钮。
这工作。谢谢!我试着在jQuery元素本身上调用outerHTML,并被告知它没有方法 - 所以我在错误的轨道上跳下了。哎呀。 – 2013-03-27 17:28:26