动态填充jQuery Mobile列表视图内容

时间:2011-11-18 14:03:31

标签: jquery listview jquery-mobile

我目前在jQuery mobile中使用动态生成的列表视图来显示数据库中的一堆数据。虽然大多数内容都在数据库中,并且在加载页面之前由django生成,但是我还想将一些内容插入到使用HTML5 localStorage存储的列表视图元素中。

因此,此数据只能通过javascript访问,而不能通过django后端访问。我设想将一些javascript绑定到pagebeforecreate事件。在此之后,我需要以某种方式遍历li中的所有ul元素(我有id),除了第一个(因为那是分隔符)。

之后它变得有点棘手。假设我已经在javascript中加载了一个已从localStorage获取信息的数组。称之为classNames。我为每个li分配了一个自定义属性期间索引,用于标识给定classNames应该作为文本接收的li数组的索引。

更新

例如,这个给定列表的内容看起来像是在被查询增强之前。

    <li data-role="list-divider">Regular Schedule/li>
    <li periodindex="5" type="schedule">
        <h1 class="ui-li-heading">6</h1>
        <p class="ui-li-maintext"><i>class name goes here</i></p>
        <p class="ui-li-aside"><b>7:30</b> - <b>8:30</b></p>
        <p class="ui-li-count">60</p>
    </li>
    <li periodindex="3" type="schedule">
        <h1 class="ui-li-heading">6</h1>
        <p class="ui-li-maintext"><i>class name goes here</i></p>
        <p class="ui-li-aside"><b>8:45</b> - <b>9:50</b></p>
        <p class="ui-li-count">65</p>
    </li>
   <li periodindex="7" type="schedule">
        <h1 class="ui-li-heading">6</h1>
        <p class="ui-li-maintext"><i>class name goes here</i></p>
        <p class="ui-li-aside"><b>10:00</b> - <b>12:00</b></p>
        <p class="ui-li-count">120</p>
    </li>
   <li periodindex="0" type="schedule">
        <h1 class="ui-li-heading">6</h1>
        <p class="ui-li-maintext"><i>class name goes here</i></p>
        <p class="ui-li-aside"><b>1:00</b> - <b>4:00</b></p>
        <p class="ui-li-count">180</p>
    </li>

我需要一种循环遍历所有给定li元素的方法,并将“class name goes here”的内容替换为classNames数组对象的内容,该内容位于periodindex属性指定的索引处。 li元素。另请注意,列表中的第一个li元素应该被忽略,因为它是列表的标题。

1 个答案:

答案 0 :(得分:4)

假设classNames数组与您网页中显示的LI元素的顺序相同,请尝试以下操作:

根据OPs回复更新

for (var i = 0; i < classNames.length; i++) {
    $("#schedule li[periodindex='" + i + "']").find(".ui-li-maintext").html("<i>" + classNames[i] + "</i>");
}