[英]How to display clicked item from sidebar to first position and remaining list get hidden and on hover show the list
[英]Get the position of the clicked list item
可以说我们有这个标记:
<header>
<nav>
<ul>
<li><a href="">first (not)</a></li>
<li><a href="">second</a></li>
<li><a href="">third</a></li>
<!-- ... more here -->
</ul>
</nav>
</header>
我发现了有关.index()函数的信息
我正在尝试这样:
$('body').on('click','header :not(li:first-child a) a',function(e){
e.preventDefault();
alert($(this).parents('ul').find('li').index(this));
});
但它始终会警告: -1
我想念什么?
尝试让自己成为父母:
alert( $( this ).parent().index() );
我建议:
$('body').on('click','header li + li a',function(e){
e.preventDefault();
console.log($(this).closest('li').index());
});
我认为问题在于index
方法中的this
; as index
返回当前匹配元素相对于提供给该方法的选择器的索引,并且有一个:仅一个当前/ this
节点,以及b:该当前节点不在您要尝试的元素的同级对象中查找索引。 因此返回-1
(在JavaScript中,如果在给定数组中未找到该元素,则为传统结果)。
另外,我更改了您的选择器; 我以为您要查找不是第一个 li
的li
的索引? 但是我可能误解了选择器或您的意图。
参考文献:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.