针对特定的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/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');
});
我去掉你有...要么有提供支持它没有足够的信息空函数,它在那里是错误的。
内部,'$( 'moreinfotext',这一点)''调用$(本).find( 'moreinfotext')',这样你就可以直接使用。 – 2012-01-01 23:12:57
@FelixKling:你说的对,我想直接调用'find'会更好。 – 2012-01-01 23:16:46
明白了!我在这里使用HTML的方式是实现它的最佳方式还是有更好的方法? – 2012-01-01 23:28:22