将生成的HTML存储在变量中

时间:2012-12-12 17:28:50

标签: jquery html code-generation innerhtml

我有一个简单的jQuery表编辑器,并希望能够将整个表存储在变量中。稍后将保存表的状态,类似于迷你CMS。

我尝试使用HTML,但它不适用于生成的元素。

这样做的最佳方法是什么?此外,.html()返回的安全性是什么,或者由于innerHTML中的浏览器差异而不应该使用它?

$("#target").click(function() {
    $('#myTable tr:last').after('<tr><td>Bla</td><td><div class="remove">REMOVE</div></td></tr>');
});

$("#myTable").on('click', '.remove', function(event) {
    $(this).parent().parent().remove();
});

var table = $("#myTable").html();
$("button").click(function() {
    $(".result").html(table);
});

3 个答案:

答案 0 :(得分:9)

尝试将点击处理程序更新为以下内容:

$("button").click(function() {
    var table = $("#myTable").html();
    $(".result").html(table);
});

在此处查看:http://jsbin.com/ucopun/11

答案 1 :(得分:2)

是否要将整个表存储在不同的元素或变量中?

如果您想将其存储在变量中,那么

$('button').on('click', function(){
    var table_html = '<table id="myTable">' + $('#myTable').html() + '</table>';
    // alert(table_html);
});

小提琴 - http://jsfiddle.net/84ETb/

答案 2 :(得分:1)

在完成修改后(即单击按钮时,而不是在DOM准备就绪时),您不能只调用html()

var the_content = $('#myTable').html();