在javascript函数中确定调用div

时间:2016-05-17 23:41:59

标签: javascript jquery function

我有一个jquery函数,它返回一个随机广告的html。

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

要插入广告,我在我的html文件中有这个:

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

然而,这是有效的,我试图用更安全的东西替换document.write()代码,比如append()。所以我试试这个:

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。 (在这两种情况下,我得到一个&#34;无法读取属性&#39; createDocumentFragment&#39;未定义&#34;错误。)

我意识到我可以为div分配一个id,然后将id传递给getAd()函数,但我在网站上有数百个这样的调用(有时在同一页面上有几个)我宁愿不这样做每次调用此函数时都必须分配然后传递一个id。

调用函数有没有办法确定调用元素,以便它可以附加html?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以为所有元素添加公共属性(或类):

<div random-ad>

然后,使用$.each()调用您的函数:

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

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