Javascript 计算元素的哪个子元素是
因此,我在一页上有几个幻灯片,每个幻灯片都有一个菜单项。 如果单击菜单项1,我想转到幻灯片1,依此类推。 到目前为止没有问题,但我不想为每个项目硬编码 有没有办法计算单击了哪个子元素?(最好是jQuery)Javascript 计算元素的哪个子元素是,javascript,jquery,numbers,element,Javascript,Jquery,Numbers,Element,因此,我在一页上有几个幻灯片,每个幻灯片都有一个菜单项。 如果单击菜单项1,我想转到幻灯片1,依此类推。 到目前为止没有问题,但我不想为每个项目硬编码 有没有办法计算单击了哪个子元素?(最好是jQuery) 由于您使用的是jQuery,因此可以使用以下方法: 或者,如果,这将使您的代码完全动态 <nav id="mainNav"> <ul> <li> <a href
-
-
-
由于您使用的是jQuery,因此可以使用以下方法:
或者,如果
,这将使您的代码完全动态
<nav id="mainNav">
<ul>
<li>
<a href="#" class="nav">Hello</a>
</li>
<li>
<a href="#" class="nav">World</a>
</li>
<li>
<a href="#" class="nav">Blaa</a>
</li>
</ul>
</nav>
<script>
$(document).ready(function(){
var navs = $('.nav');
$.each(navs,function(index,value){
$(navs[i]).attr('data-index',i);
}
$('.nav').click(function(){
var nav_index = $(this).attr('data-index');
//Do something with nav_index here
});
});
</script>
-
-
-
$(文档).ready(函数(){
var-navs=$('.nav');
$。每个(导航、功能(索引、值){
$(navs[i]).attr(‘数据索引’,i);
}
$('.nav')。单击(函数(){
var nav_index=$(this.attr('data-index');
//在这里用nav_索引做些什么
});
});
既然您也标记了plain old,我将为您提供一个解决方案
您可以使用like so():
你的处理程序是什么样子的?看看index()
方法看起来像index()正是我要搜索的。谢谢!index()和parent()的结合正是解决问题的方法。谢谢,伙计!@MichaelMikowski这是一个很好的建议。我已经将它纳入了我的答案中。
$('#mainNav a').click(function() {
alert($(this).parent().index());
return false;
});
$('#mainNav a').click(function() {
alert($(this).closest('#mainNav > ul > li').index());
return false;
});
<nav id="mainNav">
<ul>
<li>
<a href="#" class="nav">Hello</a>
</li>
<li>
<a href="#" class="nav">World</a>
</li>
<li>
<a href="#" class="nav">Blaa</a>
</li>
</ul>
</nav>
<script>
$(document).ready(function(){
var navs = $('.nav');
$.each(navs,function(index,value){
$(navs[i]).attr('data-index',i);
}
$('.nav').click(function(){
var nav_index = $(this).attr('data-index');
//Do something with nav_index here
});
});
</script>
function getElementIndex(elem) {
var i = 0;
while (elem = elem.previousElementSibling) i++;
return i;
}