在ul和li列表中显示数据

时间:2012-04-13 18:46:40

标签: jquery jquery-mobile

我在ul和li列表中显示我的新闻数据时遇到了问题。代码是:

$('#NewsPage').live('pagebeforeshow',function(event, ui){ 
    Newslist = "";
    $.each(NewsObject, function(k,v){ 
        Newslist += "<li><a href='#'>" + v.news_title + "</a></li>"; 
    }); 
    $("ul#displayNews").html(Newslist); 
}); 

在我的html文件中我有:

<div data-role="content"> 
<div id="displayNews"> 
    <ul data-role="listview" data-inset="true" data-filter="true"> </ul> 
</div> 
</div> 

请注意,Newslist是一个全局变量,我在一个名为gv_file.js的文件中定义并包含在html文件的头部

2 个答案:

答案 0 :(得分:0)

您的选择器不正确。 ul#displayNews查找<ul id="displayNews">,而不是ul中包含的#displayNews

试试这个(为方便起见,有一点.append好):

$('#NewsPage').live('pagebeforeshow',function(event, ui){ 
    $.each(NewsObject, function(k,v){ 
        $('#displayNews ul').append('<li><a href="#">' + v.news_title + '</a></li>'; 
    }); 
}); 

或者更好的是,使用更现代的on()代替live()(需要jQuery 1.7或更高版本):

$(document).on('pagebeforeshow','#NewsPage', function(event, ui){ 
    $.each(NewsObject, function(k,v){ 
        $('#displayNews ul').append('<li><a href="#">' + v.news_title + '</a></li>'; 
    }); 
}); 

答案 1 :(得分:0)

HTML:

<div data-role="content"> 
  <div id="displayNews"> 
      <ul data-role="listview" data-inset="true" data-filter="true"> </ul> 
  </div> 
</div> 

jQuery的:

$('#NewsPage').live('pagebeforeshow',function(event, ui){ 
    Newslist = "";
    $.each(NewsObject, function(k,v){ 
        Newslist += "<li><a href='#'>" + v.news_title + "</a></li>"; 
    }); 
    $("#displayNews ul").html(Newslist).listview("refresh"); 
});