2013-07-06 156 views
0

我正在努力在特定元素的寬度小於50時顯示消息,但是有多個元素具有相同的類,並且只有頁面中的第一個元素顯示消息。這裏是jsfiddle http://jsfiddle.net/MaNdn/23/jquery匹配具有相同id /類的多個元素

這裏是函數。

function checkads() { 
    if ($('#container').height() < 50) { 
     $('#container').parent().parent().prepend('<div id="ad-notice">Please support our website</div>'); 
    // 
} 
} 

$(document).ready(checkads); 

我的問題是,你如何使消息前置於找到的所有元素id實例。我在我的網站上有各種各樣的廣告,它們全都包裹在一個名爲advertisement_container的div元素中,那麼我如何一次匹配它們全部

+2

ID是唯一的。請不要爲多個元素使用相同的ID。 –

+0

我在我的網站上有各種各樣的廣告,它們都被包裹在一個名爲'advert_container'的div元素中,那麼我怎麼一次匹配它們呢? –

+2

@JoseDavidGarciaLlanos使用類,而不是 – Dom

回答

3

您需要使用each()來遍歷匹配的元素。而不是使用相同的ID爲多個元素使用相同的類作爲元素的ID是應該是唯一的。要選擇多個具有相同類的元素,可以使用像$('[id = container]')這樣的屬性選擇器,但最好使用class並保留元素的唯一ID爲

Live Demo

function checkads() { 
    $('.someclass').each(function(){   
     if($(this).height() < 50) { 
      $(this).parent().parent().prepend('<div id="ad-notice">Please support our website</div>'); 
     } 
    }); 
} 

$(document).ready(checkads); 
+0

,這是非常酷,我在找什麼。 –

+0

感謝您解釋ID的唯一內容 –

+0

不客氣。 – Adil

1

ID必須是唯一的。將其更改爲類,而不是ID,然後您可以使用filter和類似

function checkads() { 
    $('.container').filter(function (index) { 
     return $(this).height() < 50; 
    }).parent().parent().prepend('<div id="ad-notice">Please support our website</div>'); 
} 
相關問題