2012-01-22 37 views
2

這是一個非常簡單的問題,我想每個都可以工作,但我似乎無法弄清楚。我有兩個類,對於每個這些類我想運行代碼(HTML正在循環)...但它似乎只適用於它的第一次出現,我不知道如何使這個工作爲它的每一個發生。如何在jquery中爲每個類運行代碼? (不使用.click或其他)

var mheight = $('.messagetext, .smessagetext').height(); 
    if (mheight > 64) { 
     var getthis = $('.messagetext, .smessagetext'); 
     getthis.siblings('.mopacity').show(); 
     getthis.parents(".messagecontent").siblings('.messagefooter').children('.mspmore, .mfpmore').show(); 
    } 

所以當我有。點擊與.messagetext和smessagetext它工作正常(如所預期),但如果它不上點擊完成,我只是想爲這個類的每個實例運行此,它不工作......我知道這是jQuery 101,但我無法弄清楚。任何幫助表示讚賞,謝謝。

回答

4

.height()方法返回jquery對象中第一項的高度。

說明:獲取當前計算的高度爲在該組匹配 元件的第一個元素。

改成這樣:

$('.messagetext, .smessagetext').each(function() { 

    var $this = $(this), 
     mheight = $this.height(); 

    if (mheight > 64) { 
     $this.siblings('.mopacity').show(); 
     $this.parents(".messagecontent").siblings('.messagefooter').children('.mspmore, .mfpmore').show(); 
    } 

}); 
+0

+1的文件,並顯示使用'$ this'進一步下跌的代碼 - 我錯過了。 –

3

魔語是$(this)

$('.messagetext, .smessagetext').each(function(index) { 
    var mheight = $(this).height(); 
    if (mheight > 64) { 
     //.... 
    } 
}); 

當您在收集調用.height();它確實只需要集合中的第一個。

相關問題