我是网络开发的新手。不确定这是不是一个愚蠢的问题。
<nav class="navigation">
<ul class="navigation-items-container">
<a href="#"><li class="navigation-items">Home</li></a>
<a href="#"><li class="navigation-items">about</li></a>
<a href="#"><li class="navigation-items">blog</li></a>
<a href="#"><li class="navigation-items">contacts</li></a>
</ul>
/nav>
在悬停每个李我想知道它在哪个孩子的数量ul。 即 在徘徊“家”时,它应该作为0号儿童,并在徘徊“博客”时应该给2号儿童。
答案 0 :(得分:7)
由于你已经包含了jQuery标签,我将发布一个基于jQuery的答案 - 如果你想要一个非jQuery的答案,请告诉我:
$(".navigation-items-container li").hover(function(e) {
var index = $(this).index();
});
FYI您的标记错误,锚点应位于li
标记内
您当前代码的版本(虽然应该更改):
$(".navigation-items-container a").hover(function(e) {
var index = $(this).index();
});
答案 1 :(得分:1)
由于您的li
元素位于a
元素内,因此您应该使用此功能:
$(".navigation li").hover(function(){
var index = $(".navigation li").index(this);
alert(index);
});
当然,最好将a
元素与li
元素放在一起,如下所示:
<li class="navigation-items"><a href="#">Home</a></li>
那样li
元素将是ul
元素的直接子元素,那么你可以这样做:
$(".navigation li").hover(function(){
var index = $(this).index();
alert(index);
});
或者,我并不是说这更好,但您也可以使用data-*
属性来存储您想要的值:
<li class="navigation-items" data-myindex="0"><a href="#">Home</a></li>
用这个:
$(".navigation li").hover(function(){
var index = $(this).data("myindex");
alert(index);
});
如果需要,您可以指定不同的值,例如记录ID。
答案 2 :(得分:0)
尝试index()
$(".navigation ul li").hover(function(e) {
alert($(this).index());
});
答案 3 :(得分:0)
这有助于你
工作演示http://jsfiddle.net/cse_tushar/7SmfR/
$(".navigation ul li").hover(function() {
alert($(this).index('li'));
});
更正标记锚点a
)标记应包含在li
标记
<nav class="navigation">
<ul class="navigation-items-container">
<li class="navigation-items">
<a href="#">Home</a>
</li>
<li class="navigation-items">
<a href="#">about</a>
</li>
<li class="navigation-items">
<a href="#">blog</a>
</li>
<li class="navigation-items">
<a href="#">contacts</a>
</li>
</nav>
答案 4 :(得分:0)
试试这个。
$('li').on('mouseover', function(){
console.log($('ul li').index($(this)));
})