我有一个获取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 + '">');
答案 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 + '">');
});