2

我正在努力在特定元素的宽度小于 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 实例。我的网站周围有各种广告,它们都包裹在一个名为的 div 元素中,advertisement_container那么我如何一次将它们全部匹配

4

2 回答 2

6

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

现场演示

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);
于 2013-07-06T00:34:44.763 回答
1

ID 必须是唯一的。将其更改为一个类,而不是一个 ID,然后你可以使用过滤器和类似的东西

function checkads() {
    $('.container').filter(function (index) {
        return $(this).height() < 50;
    }).parent().parent().prepend('<div id="ad-notice">Please support our website</div>');
}
于 2013-07-06T00:40:50.707 回答