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

问题描述:

可能重复:
How to select an element by class inside “this” in Jquery针对特定的jQuery元素具有相同的类名

我新的jQuery的......我觉得这事做与使用“这“命令但不知道。

我有一个页面,它是以编程方式创建如下几个div:

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

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

我用这个代码来切换显示moreinfotext格:

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

但这显然做了切换的所有页面上存在的moreinfotext的div。

有两个问题: 我该如何为父级moreinfolink div内的特定子div执行操作? 有没有比我要去的方向更好的方法呢?

谢谢!

你可以使用.find(如@FelixKling建议):

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

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

+5

内部,'$( 'moreinfotext',这一点)''调用$(本).find( 'moreinfotext')',这样你就可以直接使用。 – 2012-01-01 23:12:57

+0

@FelixKling:你说的对,我想直接调用'find'会更好。 – 2012-01-01 23:16:46

+0

明白了!我在这里使用HTML的方式是实现它的最佳方式还是有更好的方法? – 2012-01-01 23:28:22

这拨弄告诉您如何做到这一点:http://jsfiddle.net/ZAwTL/

或者this fiddle,这表明直接按Felix Kling的建议调用find()方法。

样本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() { }); 
}); 

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

我去掉你有...要么有提供支持它没有足够的信息空函数,它在那里是错误的。