首先:抱歉我的英文
我有一个这样的网页
<div class="item"><div class="details">
<ul>
<li><a href="#">Show div 1</a></li>
<li><a href="#">Show div 2</a></li>
<li><a href="#">Show div 3</a></li>
</ul>
<div>div 1</div>
<div>div 2</div>
<div>div 3</div> </div></div>
重要提示:我有几个名为'item'的div。
我有这个jquery脚本
$(document).ready(function() {
$('ul > li > a').each(function(index) {
$(this).click(function() {
$('.details > div:eq(' + index + ')').toggle()
.siblings('.details > div').hide();
});
});
});
但如果我点击'a',它会显示所有项目的相对'div'。 我喜欢如果我点击第一个元素的第一个'a',它会显示第一个ONLY项目的第一个'div',而不是所有项目。
这是一个测试页link text (:O它仅适用于第一个div上的链接!)
我希望能够清楚......
全部谢谢
答案 0 :(得分:2)
div:eq(' + index + ')
一直在寻找第一个项目div的第一,第二和第三个元素,试试这个:
$(document).ready(function() {
$('ul > li > a').each(function(index) {
$(this).click(function() {
$(this).closest('.item').siblings().find('.details > div').hide();
$('.item .details div:eq(' + index + ')').toggle();
});
});
});
尝试采用更简单的解决方案,例如@Dave Beer's。
答案 1 :(得分:2)
如果你能够为div和链接添加一个class属性。
<div class="item"><div class="details">
<ul>
<li><a href="#" id="div1">Show div 1</a></li>
<li><a href="#" id="div2">Show div 2</a></li>
<li><a href="#" id="div3">Show div 3</a></li>
</ul>
<div class="div1">div 1</div>
<div class="div2">div 2</div>
<div class="div3">div 3</div> </div></div>
然后,你的jQuery可以像下面那样简单:
$(document).ready(function() {
$('ul > li > a').click(function(){
$('#details > div').hide(); // hide all of the divs
$('div.' + this.id).show(); // then show the one with the same class as the link.id that was clicked
});
});