所以我知道这可能是一个糟糕的编程习惯,但是我有点紧张,基本上我的代码中都有一个标签,点击屏幕上的按钮,我就可以了。我试图在该div中附加一堆代码。但是,我注意到了两件事。一,我的其他javascript崩溃除非附加的代码全部在一行,两个,即使我已经分配了类,我的css样式表也没有应用于代码。这是相关代码:
$("#results").append("<ul class='sdt_menu'>");
for(i=0; i < progression[max].length;i++)
{
$("#results").append(
"<li><a href='#'><img src='images/youAreHere.jpg' alt=''/><span class='sdt_active'></span><span class='sdt_wrap'><span class='sdt_link'>"+progression[max][i]+"</span><span class='sdt_descr'>hover to view description</span></span></a><div class='sdt_box'>"+jobs[progression[max][i]]['description']+"</div></li>");
}
$("#results").append("</ul>");
任何帮助揭开神秘面纱的人都会非常感激。
答案 0 :(得分:4)
当你追加时,你应该附加一整套完整的封闭标签。它不像stringbuilder那样工作。尝试改为:
var tag = '<ul class="sdt_menu">';
for(var i = 0; i < progression[max].length; i++) {
tag += '...all of your other list items';
tag += "</ul>";
$(tag).appendTo("#results");
答案 1 :(得分:4)
在您当前的代码中,只要您添加<ul>
,它就会被浏览器自动关闭(因为在DOM中无法使用未关闭的标记),然后您的<li>
被添加到#results
也是。或者至少,如果让<li>
成为<div>
的孩子是合法的,那么他们就是合法的。
相反,您需要将<li>
元素附加到<ul>
,而不是#results
:
var $ul = $("<ul class='sdt_menu'>");
for (i = 0; i < progression[max].length; i++) {
$ul.append(...);
}
$ul.appendTo('#results');
答案 2 :(得分:1)
试试这个:
var tag = [];
var ic=0;
tag[++ic] = '<ul class="sdt_menu">';
for(var i = 0; i < progression[max].length; i++) {
tag += '...all of your other list items';
}
tag[++ic] = "</ul>";
$("#results").append(tag.join(''));