Jquery匹配具有相同id / class的多个元素

时间:2013-07-06 00:33:04

标签: javascript jquery

我正在努力在特定元素的宽度小于50时显示消息,但是有多个元素具有相同的类,并且只有页面中的第一个元素显示消息。这是jsfiddle http://jsfiddle.net/MaNdn/23/

这是功能。

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 个答案:

答案 0 :(得分:5)

您需要使用each()来遍历匹配的元素。而不是为多个元素使用相同的id使用相同的类,因为元素的id 应该是唯一的。要选择具有相同类的多个元素,您可以使用属性选择器,如$('[id = container]'),但最好使用类并保持元素的唯一。

<强> 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);

答案 1 :(得分: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>');
}