2013-06-22 80 views
4

我試圖在日後檢索數組中放入一些html標記。我的編輯器在description1行上拋出語法錯誤,我找不到原因。任何幫助將非常感激。下面的代碼。謝謝對象字面量語法錯誤中的JavaScript字符串字面值錯誤

var modalcontent = { 
    description1 : '<div id = "description"><div class = "tbc"> 
    <label class = "tbc" for = "tbc">Description</label> 
    </div> 
    <div class = "tbc"> 
    <input type = "text" class = "tbc" name = "description" id = "tbc" placeholder =  "Enter description"> 
    </div> 
</div> 
<!--end description div-->' 
} 
+0

將你的HTML存儲在stings中是不好的做法。稍後當您想更改或添加內容時,您會注意到它。 –

回答

5

你有一個未閉合的字符串文字。 JavaScript字符串默認爲而不是多行。

var modalcontent = { 
    description1 : '<div id = "description"><div class = "tbc"> '+ 
    '<label class = "tbc" for = "tbc">Description</label>'+ 
    '</div>'+ 
    '<div class = "tbc">'+ 
    '<input type = "text" class = "tbc" name = "description" id = "tbc" placeholder = "Enter description">'+ 
    '</div>'+ 
    '</div>'+ 
    '<!--end description div-->' 
} 

(fiddle)

或者,您也可以通過使用\角色,在新實施的唯一的工作創建多行字符串。見this related questionthe language specification

注意:將HTML存儲在字符串中通常不是最好的辦法,它使調試和使用變得更加困難。你通常可以使用模板。這並不是說沒有好的用例,它很少是這種情況。

+0

謝謝。這是根據用戶的選擇將動態內容作爲字段注入到表單中。我最初在一個單獨的html文件中保存這些文件,並使用jQuery load()函數調用它們。我認爲在JavaScript中包含標記可能更專業,因爲我不希望用戶訪問存儲所有這些div的html文件。這是你的模板意味着什麼?謝謝A – Ant

+0

您可以使用類型爲「text/template」的腳本標記,將內容存儲在這些腳本標記中,然後通過單個DOM調用讀取內容並進行呈現。這樣,你可以繼續像通常一樣在模板上工作。如果符合您的需求,您可能需要考慮使用諸如Mustache等注入狀態到這些腳本中。代碼中的字符串文字會非常快速地變得非常混亂。 –

+0

感謝您的幫助。一個 – Ant