jquery查找嵌套li的索引号
我将如何获取嵌套 LI 之一的索引位置号?我可以获得顶部导航索引,但看不到子导航的子索引号。
我想动态创建选择器以根据顶部导航的索引定位子导航。
<div id="nav_container">
<ul id="topnav">
<li><a href="#a">menu item 0</a>
<ul id="subnav0">
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
</ul>
</li>
<li><a href="#a">menu item 1</a>
<ul id="subnav1">
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
<li><a href="#">sub menu item</a></li>
</ul>
</li>
<li><a href="#">menu item 2</a></li>
<li><a href="#">menu item 3</a></li>
</ul>
</div>
我的 jQuery 代码
//Event Handler
function nav_execute(){
var _index = $('#topnav > li').index(this);//Returns index number of topnav item selected
var _subnav = '#subnav'+ _index.toString();
var _selector = _subnav + ' > li'.toString();//the subnav selector
var _subindex = $(_selector).index();//gets total num of index's
}
//Binded event
$('#topnav > li').bind('click', nav_execute);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
需要注意的是,我真的不确定我是否理解您的目标,请尝试将您的 javascript 替换为:
查看完整示例 这里
(这不是一个解决方案。它是一种查看哪些元素正在触发事件以及按什么顺序触发事件的方法)。
With the caveat that I am really not sure I understood what you are aiming, try replacing your javascript with:
See the full example here
(this isn't a solution. It is a way to see which elements are firing events and in which order).
所以我认为你想说的是我想要获得“#topNav >”中包含的“subNav”ul。 li”被点击了?
如果这就是您想要做的,那么这应该可以
编辑:
根据您的评论,这里是您想要的jsfiddle:http://jsfiddle.net/wuFB7/4/
您可以直接为那些嵌套的 li 创建一个选择器。但是既然您说它们是动态生成的,我改变了“.bind”到“.live”,因为这将允许将事件处理程序附加到初始页面加载后创建的元素。
So I THINK you are trying to say I want to get the 'subNav" ul contained in whatever "#topNav > li" was clicked?
If that is what you are trying to do then this should work
EDIT:
Per your comment here is a jsfiddle of what you want: http://jsfiddle.net/wuFB7/4/
You can just create a selector for those nested li's directly. However since you said they are dynamically generated I changed ".bind" to ".live" since this will allow attaching event handlers to elements created after the initial page load.