2011-05-31 55 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"); 
}); 
相关问题