【发布时间】:2012-05-10 21:27:25
【问题描述】:
我有一段 html,当 JQM 完成后,它看起来像这样(简化):
<div id="servicesList">
<div id="servicesHeader">Services</div>
<ul data-role="listview" class="ui-listview">
<li id="Serv1" class="serviceLink">Service 1</li>
</ul>
<ul data-role="listview" class="ui-listview">
<li id="Serv2" class="serviceLink">Service 2</li>
</ul>
</div>
此代码是从另一段脚本动态生成的。
每个服务都有一个附加的点击事件,它可以动态地提取更多数据。理想情况下,我希望能够在单击服务时引用它的索引。这是我当前的代码:
$('.serviceLink').click(function() {
var index = $(this).closest("ul").index();
servAnimate(index);
});
显然,这不起作用,因为拉入的对象数组包括 servicesHeader div。我如何才能只获取父 ul 的数组?本质上,当用户点击 Service 1 时,返回的索引应该是 0,而不是 1。现在,索引 0 引用 servicesHeader div。
我也试过这个:
$(this).closest("ul").filter("ul").index();
任何帮助将不胜感激!
编辑:我应该指定 HTML 是由另一个开发人员的脚本生成的。它可能会改变,也可能保持不变。到目前为止,我唯一能保证的是 UL 将保持在同一级别并具有 serviceLink 类。
同样,我如何仅获取父 UL 的索引,而不管存在哪些其他同级元素?
【问题讨论】:
标签: jquery jquery-mobile jquery-traversing