2011-05-31 56 views
0

如果我在jQuery的定義的變量如下:如何在jquery中插入一個帶有數據的變量?

var insertString = "<div id='divid'>"; 
    insertString += "<input type='text' name='textbox' value=''>"; 
    insertString += "</div>"; 

現在,如果我想要一些DOM元素之前插入上述變量「insertString」,我該怎麼辦呢?我想類似下面沒有成功

insertString.insertBefore("body"); 
+0

字符串沒有'insertBefore'方法,只有jQuery對象。您可能想嘗試:'$('body')。prepend(insertString)'。 – pimvdb 2011-05-31 14:18:26

+0

@pimvdb,它會在*''之後插入字符串*,這不是要求的(儘管很可能是想要的)。 – tjm 2011-05-31 14:20:45

+0

@tjm:我真的不知道 - 爲什麼要在'body'元素之前插入'div'? – pimvdb 2011-05-31 14:22:21

回答

2

你應該能包住你的HTML在$()功能從而將它傳遞給jQuery和創建一個jQuery對象。然後,您可以通過鏈接jQuery函數像這樣的對象進行操作:

$(insertString).insertBefore("body"); 

但是這將是很奇怪的把一個div體前...也許這是最好將其預先考慮到身體這個樣子。 ..

​​
+1

您的意思是'prependTo',或者反轉目標和來源。 – 2011-05-31 14:23:19

+0

你是 - 謝謝 – 2011-05-31 14:25:19

3

我不會建議將身體標記爲內容屬於它的內部之前,但在這裏,你將如何使用id =「富」的元素之前插入。

$(insertString).insertBefore('#foo'); 

更新: Here的小提琴來測試功能

3

體前不要插入。內容身上。

爲什麼不用prependTo代替?

另外,您試圖在字符串上運行jQuery成員函數,而不是在jQuery對象上運行。你需要從字符串形成jQuery對象。

最後,您忘記關閉您的input標籤。

Like this

$(function() { 
    var insertString = "<div id='divid'>"; 
    insertString += "<input type='text' name='textbox' value='' />"; 
    insertString += "</div>"; 

    $(insertString).prependTo("body"); 
}); 
相關問題