我目前在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
元素应该被忽略,因为它是列表的标题。
答案 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>");
}