我有一个获取 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 + '">');
最佳答案
您最好在直接 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()
可以避免这种情况,因为它可以确保将值安全地插入到元素中。
关于javascript - JQuery:将var的html内容转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115995/