早上好。 我喝了一些咖啡来补偿这个Javascript / jQuery问题带来的压力。
基本上与这个问题相反:Determining child index in it's parent
实际的HTML(DOM)
<body>
<div id="content">
<div class="contentbox">
<div class="content">
<h2>Image Gallery Header</h2>
<div class="imageGallery">
<div class="image">
<a href="javascript:void(0);" class="prevImg"><i class="sx028"></i></a>
<ul>
<li id="g2i1">
<img src="imgs/imageGallery1.jpg" alt="" width="505" height="298" />
<p>Image Caption...</p>
</li>
<li id="g2i2">
<img src="imgs/imageGallery2.jpg" alt="" width="505" height="298" />
<p>Image Caption...</p>
</li>
</ul>
<a href="javascript:void(0);" class="nextImg" title="nächstes Bild"><i class="sx029"></i></a>
</div>
<div class="thumbs">
<a href="javascript:void(0);" class="prevImg"> </a>
<ul>
<li>
<img src="imgs/imageGallery1.jpg" alt="" width="149" height="88" />
</li>
<li>
<img src="imgs/imageGallery2.jpg" alt="" width="149" height="88" />
</li>
</ul>
<a href="javascript:void(0);" class="nextImg"> </a>
</div>
</div>
<h2>Image Gallery Caption</h2>
<p>
Some text.
</p>
</div>
<div class="content">
<h2>Image Gallery Header</h2>
<div class="imageGallery">
<div class="image">
<a href="javascript:void(0);" class="prevImg"><i class="sx028"></i></a>
<ul>
<li id="g2i1">
<img src="imgs/imageGallery4.jpg" alt="" width="505" height="298" />
<p>Image Caption...</p>
</li>
<li id="g2i2">
<img src="imgs/imageGallery5.jpg" alt="" width="505" height="298" />
<p>Image Caption...</p>
</li>
</ul>
<a href="javascript:void(0);" class="nextImg"><i class="sx029"></i></a>
</div>
<div class="thumbs">
<a href="javascript:void(0);" class="prevImg"> </a>
<ul>
<li>
<img src="imgs/imageGallery4.jpg" alt="" width="149" height="88" />
</li>
<li>
<img src="imgs/imageGallery5.jpg" alt="" width="149" height="88" />
</li>
</ul>
<a href="javascript:void(0);" class="nextImg"> </a>
</div>
</div>
<h2>Image Gallery Caption</h2>
<p>
Some text.
</p>
</div>
</div>
</div>
</body>
感谢您阅读那一大堆。
伪JQuery
$(".nextImg").click(function() {
var activeGallery = $(this).parents(".imageGallery").index();
alert("You've clicked the next image button of image Gallery #" + activeGallery);
});
结果(提示消息)
您点击了图片库#1的下一个图片按钮&lt; - 如果您点击了带有索引()的“.imageGallery”的“.nextImg”按钮; 1
您已点击图片库#2的下一个图片按钮&lt; - 如果您点击带有索引()的“.imageGallery”的“.nextImg”按钮; 2
问题:
如何将 class =“nextImage”的父母“爬”到元素 div class =“imageGallery”并响应的索引div class“imageGallery”?
对于我的画廊项目的最后一步非常重要。谢谢你的回复!
答案 0 :(得分:3)
像
这样的东西$(".nextImg").click(function() {
var $galleries=$('.imageGallery');
var activeGallery = $galleries.index($(this).closest(".imageGallery"));
alert("You've clicked the next image button of image Gallery #" + activeGallery);
});
activeGallery
会告诉您所有.imageGallery
中当前.imageGallery
(包含所点击链接的那个)的索引位置。这是从零开始的,因此您可能希望+1为人类可读性。
答案 1 :(得分:1)
这不是你要求的,但我认为这正是你所需要的:
$(".nextImg").click(function() {
var $activeGallery = $(this).closest(".imageGallery");
// In here, you call methods on $activeGallery
});
答案 2 :(得分:0)
var activeGallery = $(this).closest(".content").index();
我想也许这就是你所追求的,你必须上升到另一个层次,.content
是在整个范围内编入索引的div,从那里你可以定位它的子画廊