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が unique であると想定されているため、同じクラスを使用します。同じクラスの複数の要素を選択するには、 $('[id=container]') のような属性セレクターを使用できますが、クラスを使用して要素の ID をuniqueに保つ方が適切です。

ライブデモ

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 に答える