定位具有相同类名的特定jQuery元素

时间:2012-01-01 23:09:30

标签: jquery

  

可能重复:
  How to select an element by class inside “this” in Jquery

我对jQuery更新......我认为这与使用'this'命令有关但不确定。

我有一个以编程方式创建几个div的页面:

<div class="moreinfolink">Click For More Information
<div class="moreinfotext">Additional Info Here</div>
</div>

因此页面上有几个.moreinfolink和.moreinfotext类。

我使用此代码切换显示moreinfotext div:

$('.moreinfolink').click(function() {
  $('.moreinfotext').toggle('slow', function() {
  });

但是这显然会对页面上存在的所有moreinfotext div进行切换。

两个问题: 如何为父moreinfolink div中的特定子div做到这一点? 有没有比我要去的方向更好的方法?

谢谢!

3 个答案:

答案 0 :(得分:8)

你可以使用.find(正如@FelixKling建议的那样):

$('.moreinfolink').click(function() {
    $(this).find('.moreinfotext').toggle('slow', function() { ... });
});

示例: http://jsfiddle.net/hejFq/

答案 1 :(得分:1)

这个小提琴告诉你如何做到这一点:http://jsfiddle.net/ZAwTL/

this fiddle,显示直接调用find()方法,如Felix Kling所示。

示例HTML

<div class="moreinfolink">Click For More Information
<div class="moreinfotext">Additional Info Here</div>
</div>
<br>
<br>
<div class="moreinfolink">Click For More Information
<div class="moreinfotext">Additional Info Here</div>
</div>
<br>
<br>
<div class="moreinfolink">Click For More Information
<div class="moreinfotext">Additional Info Here</div>
</div>

<强>的JavaScript

$('.moreinfolink').click(function() {
  $(this).find('.moreinfotext').toggle('slow', function() { });
});

答案 2 :(得分:1)

$('.moreinfolink').click(function() {
  $(this).children('.moreinfotext').slideToggle('slow');
});

我删除了你所拥有的空函数...要么没有提供足够的信息来支持它,要么是错误的。