JQuery:将var的html内容转换为字符串

时间:2013-01-02 01:40:52

标签: javascript jquery string variables

我有一个获取div的HTML的var。我想在隐藏的表单字段中使用该var,以便将HTML保存到数据库中。

我很难将HTML或var转换为字符串。目前,将var添加到我的输入中会中断代码。

我尝试过以几种不同的方式使用.wrap('<pre />');,但它没有帮助,我认为这不对。

有人能指出我正确的方向吗?谢谢!

var code = $('#container').html();

code = code.wrap('<pre />')

document.write('<input type="hidden" name="html" value="' + code + '">');

2 个答案:

答案 0 :(得分:5)

最好使用直接document.write上的辅助方法(因为它是HTML),你需要将其转义(确保代码中没有引号)。长话短说,可能会使用类似的东西:

$('<input>',{
  'type':'hidden',
  'name':'html'
}) // create element
  .val(code) // use helper to insert HTML (auto-excapes)
  .appendTo('body'); // insert it where ever you need it

进一步解释:例如,假设code有以下内容:

<div class="foo">bar</div>

通过使用文档写入(而不是转义它),您正在编写:

<input type="hidden" name="html" value="<div class="foo">bar</div>">

class="foo"(及其引号)会干扰原始隐藏元素的value=""属性。使用.val()可以避免这种情况,因为它可以确保将值安全地插入到元素中。

答案 1 :(得分:0)

使用jQuery,这可能是最好的方法......

jQuery(document).ready(
    function (){ 
        var code = jQuery.trim(jQuery('#container').html());
        jQuery("form").append('<input type="hidden" name="html" value="' + code + '">');
});