2012-01-01 115 views
4

可能重複:
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執行操作? 有沒有比我要去的方向更好的方法呢?

謝謝!

回答

7

你可以使用.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

1

這撥弄告訴您如何做到這一點: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() { }); 
}); 
1
$('.moreinfolink').click(function() { 
    $(this).children('.moreinfotext').slideToggle('slow'); 
}); 

我去掉你有...要麼有提供支持它沒有足夠的信息空函數,它在那裏是錯誤的。

相關問題