javascript - 是否可以在将 jQuery 创建的元素插入 DOM 树之前获取其 HTML?

标签 javascript jquery html jqgrid

这是我得到的:

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
        });
    });
},

按预期呈现按钮。

最佳答案

您从按钮中得到一个空字符串,因为 html() 返回内部 HTML。

您可能需要 doneButton.get(0).outerHTML

关于javascript - 是否可以在将 jQuery 创建的元素插入 DOM 树之前获取其 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665281/

相关文章:

javascript - Material-UI组件中componentsProps的用途是什么?

javascript - React HOC 与辅助类?

javascript - 添加未找到结果的自定义消息

javascript - 流体填充?无法使用高度或宽度

Javascript 与 Css 特异性与内联样式

javascript - 堆叠 div 并使用切换来显示/隐藏

jquery - 如何在 jquery Treetable 插件中添加子行

jquery - 在 jquery DataTables 中跳过一行的渲染

php - INSERT查询PHP e mySql引起的奇怪错误

html - 我怎样才能让这些元素在同一行?