无法附加到jQuery变量

时间:2014-09-21 02:03:55

标签: javascript jquery append

我现在已经对这个问题猛烈抨击了一段时间。我无法找到将此标记附加到其父级的任何方法。这个变量似乎是在我在调试器中检查时定义的,但是追加根本就不会发生。如果我不传递变量而是查询父内联,它似乎才有效。

function AdType($parentObj, adSlot)
{
    this.$parentObj = $($parentObj);
    this.adSlot = adSlot;
}
AdType.prototype.display = function()
{
    var insert = document.createElement("ins");
    insert.className = "adsbygoogle";

    this.$parentObj.append(insert);
};    
AdType.prototype.remove = function()
{
    this.$parentObj.empty();
};


var Ads = {
    mobile :  new AdType($("#mobile-ad"), "555"),

    display : function () {
        if (Display.get() == 'mobile'){
            this.mobile.display();
        }
    }
};

Ads.display(); 

1 个答案:

答案 0 :(得分:0)

我注意到的一件事是AdType对象是Ads的属性。当我用Ads.display()替换Ads.mobile.display()时,代码似乎有效。此外,为了提高代码可读性,不需要在函数参数中重复这些$符号。

看看这个堆栈代码段,我可以在<a>附加AdType代码。

function AdType(parentObj, adSlot)
{
    this.parentObj = parentObj;
    this.adSlot = adSlot;
}
AdType.prototype.display = function()
{
    this.parentObj.append('<a href="#">I got appended!</a>');
};    
AdType.prototype.remove = function()
{
    this.$parentObj.empty();
};


var Ads = {
    mobile:  new AdType($("#mobile-ad"), "555")
};
Ads.mobile.display(); 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id ="mobile-ad"></div>