下面是我得到了什麼:是否可以在插入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