[英]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.