Jquery问题:向jquery对象添加内容

时间:2010-12-10 10:01:54

标签: jquery

我想在jquery对象的末尾添加一个字符串。像这样:

var mytable = $("<table><tbody><tr><td>");
mytable.after("Test</td></tr></tbody></table>");

我也尝试过这个

mytable += "Test</td></tr></tbody></table>";

也不起作用。

3 个答案:

答案 0 :(得分:1)

问题在于

"<table><tbody><tr><td>" //jQuery will try to create full html elements from what you enter

无效html也不是

"Test</td></tr></tbody></table>" // this will never work, cause this tags are closing only and the table might have been already build when the line before gets executed

jQuery可能能够从不完全有效的html创建有效元素,但这并不适用于所有情况。 我建议你尝试使用有效的HTML !!!

答案 1 :(得分:1)

jQuery不能那样工作。当你在jQuery中处理元素时,它们总是有效的。如果它无法验证它,它将不会添加它。我尝试了你的例子,jQuery完成了无效的HTML:

var mytable = $("<table><tbody><tr><td>");    
// mytable is equal to $("<table><tbody><tr><td></td></tr></tbody></table>");

如果您要在表格中添加新单元格,可以选择所需的元素(即tr),然后使用append方法

mytable.find("tr").append("<td>New cell</td>");

当然,您可以将两个字符串放在一起并将它们放在jQuery对象中,只要它们加入以生成有效的HTML

var string1 = "<table><tbody><tr><td>First half and";
    string1 = " second half</td></tr></tbody></table>";

mytable = $(string1 + string2);

答案 2 :(得分:1)

除非您提供完整有效的HTML,否则jQuery无法创建页面元素。我不确定你的确切需求,但你应该在这一行上做点什么:

var mytable = $("<table><tbody><tr><td></td></tr></tbody></table>").find("td").text("Test");