我正在使用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限制?
答案 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');