当我点击li标签中的锚点时,我想识别它前面的h3标签的索引。例如,如果我点击概述,我想获得简介索引。我如何用Jquery完成这个?
<h3><a href="Introduction" rel="address:/Introduction">Introduction</a></h3>
<div class="navigation primary_navigation">
<ul>
<li><a href="purpose" rel="address:/purpose">Purpose</a></li>
<li><a href="overview" rel="address:/overview">Overview</a></li>
</ul>
</div>
<h3><a href="Incorporate_Learning" rel="address:/Incorporate_Learning">Incorporate Learning</a></h3>
<div class="navigation primary_navigation">
<ul>
<li><a href="appraise" rel="address:/appraise">Appraise</a></li>
<li><a href="select" rel="address:/select">Select</a></li>
<li><a href="define" rel="address:/define">Define</a></li>
<li><a href="execute" rel="address:/execute">Execute</a></li>
<li><a href="resources" rel="address:/resources">Resources</a></li>
</ul>
</div>
答案 0 :(得分:4)
$(function () {
$("li a").click(function (e) {
e.preventDefault();
var $h3 = $(this).closest(".primary_navigation").prev();
console.log($("h3").index($h3));
});
});
答案 1 :(得分:4)
如果你想要索引,你可以从点击的点获得之前的所有h3
。
类似的东西:
$(this).closest('div.navigation').prevAll('h3').length
当有2个元素时会返回2,所以你的索引是前一个h3减去1的长度。
答案 2 :(得分:2)
你可以尝试
$('.navigation a').click(function(){
var uncle = $(this).parents(".navigation").prev('h3');
...
});
答案 3 :(得分:1)
这应该工作
$("li").live("click", function(){
alert($(this).parents('.navigation').prev().html());
});
答案 4 :(得分:1)
$('li>a').click(function(){
var uncle = $(this).parents('ul').parent().prev();
return false;
});