2013-01-02 41 views
2

我有一個獲取div的HTML的var。我想在隱藏的表單字段中使用該var,以便將HTML保存到數據庫。JQuery:將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

更好的使用textarea的顯示html..able顯示換行符 – charlietfl

回答

5

你最好不要使用輔助方法通過直接document.write的(因爲它是HTML),你需要逃脫它(確保沒有引號witin的代碼)。長話短說,也許使用類似:

$('<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()可以避免這種情況,因爲它確保將值安全地插入到元素中。

0

使用jQuery,這可能是做到這一點的最好辦法...

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