簡體   English   中英

在JavaScript函數中確定調用div

[英]Determining the calling div in a javascript function

我有一個jquery函數,它返回用於隨機廣告的html。

function getAd() {
    document.write( '<div>Some randomized ad html</div>' );
}

要插入廣告,請在html文件中添加以下廣告:

<div><script>getAd();</script></div>

這可行,但是,我試圖用更安全的東西(例如append())替換document.write()代碼。 所以我正在嘗試:

function getAd() {
    $(this).append( '<div>Some randomized ad html</div>' );
}

但是,$(this)是窗口而不是div。

我也試過這個:

function getAd(elem) {
    $(elem).append( '<div>Some randomized ad html</div>' );
}

在html中,我通過了:

<div><script>getAd(this);</script>

但是再一次,$(elem)是一個窗口而不是div。 (在這兩種情況下,我都會收到“無法讀取未定義的屬性'createDocumentFragment'”的錯誤。)

我知道我可以為div分配一個ID,然后將該ID傳遞給getAd()函數,但是我在網站上有數百個此類調用(有時在同一頁面上有多個調用),所以我寧願不必分配然后每次調用此函數時傳遞一個id。

調用函數是否可以確定調用元素,以便可以附加html?

謝謝!

您可以向所有元素添加通用屬性( 或類 ):

<div random-ad>

然后,使用$.each()調用函數:

function getAd(elem) {
    $(elem).append( '<div>Some randomized ad html</div>' );
}

$(document).ready(function(){
    $('[random-ad]').each(function(){
        getAd(this);
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM