2013-07-24 62 views
1

我想插入一些列表项目从JSON内容填充ul项目,但我不明白它是什么,我不明白我是什么做错了。在ul插入列表项目由jquery

这是我使用的代码:

var over_slide = $('<div id="slider" class="slider"></div>'); 

over_slide.append('<ul class="orslider">'); 

$.each(jsonobject, function (index, d) { 
    if (d.category_id == 5) { 
     over_slide.append("<li><h1 class='cufon'>" + d.naam + "</h1><h2 class='cufon'>" + d.subtekst + "</h2><p>" + d.tekst + "</p></li>"); 
    } 
}); 

over_slide.append('</ul>'); 

当我看着我的来源,当我访问该页面,它与正确的类名和所有的列表项的空白UL放在外面的UL认证。我怎样才能解决这个问题?我尝试了很多,但它仍然无法正常工作。

+0

你能告诉'jsonobject'? –

回答

3

生成的li及其内容正被附加到div而不是li

var over_slide = $('<div id="slider" class="slider"></div>'); 

var ul = $('<ul/>', {"class":"orslider"}; //create new ul object 

$.each(jsonobject, function(index, d){  
    if(d.category_id == 5){ 
     //append elements to the ul instead of the div 
     ul.append("<li><h1 class='cufon'>"+d.naam+"</h1><h2 class='cufon'>"+d.subtekst+"</h2><p>"+d.tekst+"</p></li>"); 
    } 
}); 
over_slide.append(ul); 
//at somepoint over_slide needs to be appended to the DOM 

为了获得更好的性能

var over_slide = $('<div id="slider" class="slider"></div>'); 

var ul = $('<ul/>', {"class":"orslider"}; //create new ul object 
var html = ""; 
$.each(jsonobject, function(index, d){  
    if(d.category_id == 5){ 
     //append elements to var 
     html += "<li><h1 class='cufon'>"+d.naam+"</h1><h2 class='cufon'>"+d.subtekst+"</h2><p>"+d.tekst+"</p></li>"; 
    } 
}); 

//only perform append once 
ul.append(html); 

over_slide.append(ul); 
//at somepoint over_slide needs to be appended to the DOM 
+0

谢谢,你救了我的一天! –

+0

@MarcoBinnekamp很高兴我能帮到你。如果你想让这个函数更好地执行,请在循环内的字符串中收集li标记,然后在循环之外调用'ul.append'。 –

+0

您需要接受答案,而不是将问题编辑为“已解决”。 –