jquery在几个.append中拆分html

时间:2014-10-19 12:24:13

标签: javascript jquery html

我正在使用jquery和jQWidgets以及标签进行一些测试。

我将使用循环中的jquery .append为选项卡创建html结构,但是我在jQwidget中收到有关structur的错误消息。问题是我如何附加html。

这个例子只是为了模拟我的循环中发生的事情。

如果我像这样添加html

$('#jqxTabs').append('<ul><li>test</li><li>testar</li></ul><div id="test"></div><div id="testar"></div>');

然后它的工作,但如果我在几个步骤中添加html然后我从jQwidget

得到错误
$('#jqxTabs').append('<ul>');
$('#jqxTabs').append('<li>test</li><li>testar</li>');
$('#jqxTabs').append('</ul>');
$('#jqxTabs').append('<div id="test"></div><div id="testar"></div>');

也许这是一些基本的jquery限制?

1 个答案:

答案 0 :(得分:3)

DOM无法正常工作,您无法单独添加/插入开启结束标记。您应该将元素的表示传递给append方法,以便它可以创建元素

$('<ul></ul>') // generate an `ul` element
     .append('<li>test</li><li>testar</li>') // append some `li` elements to it
     .appendTo('#jqxTabs'); // append the `ul` to the target object

正如@DavidThomas在评论部分提到的那样,你也可以将一个对象传递给jQuery,它将使用它来为生成的元素添加属性和属性:

$('<ul/>', {
    html: '<li>test</li><li>testar</li>' // jQuery calls the `html` method behind the scenes
}).appendTo('#jqxTabs');