通过javascript将DOM添加到DOM - 不起作用

时间:2013-02-08 06:57:24

标签: javascript jquery appendchild createelement

我正在尝试通过脚本将jQuery添加到我的文档中,但是根据firebug,尽管脚本元素及其属性附加到DOM,但是从未找到jQuery库。即使在等了很长时间之后,图书馆也无法使用。我做错了什么。

    if(typeof jQuery === 'undefined'){
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
        document.getElementsByTagName("head")[0].appendChild(script);
    }

3 个答案:

答案 0 :(得分:0)

从我的一些代码中复制了以下代码(我认为这只是为了安全)应该有效:

if (typeof(jQuery.ui) == 'undefined')
{
    var script     = document.createElement('script');
    script.src = url;

    var head = document.getElementsByTagName('head')[0],

    // Attach handlers for all browsers
    script.onload = script.onreadystatechange = function() {

         if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
        // callback function provided as param
        if(success != null)
        {
            success();
        }
        script.onload = script.onreadystatechange = null;
        };              
    };              
    head.appendChild(script);   
}

顺便说一句,成功是我为实际初始化定义的回调函数。就像gdoron说你需要等待它加载。

答案 1 :(得分:-1)

试试这个。它简单而且工作正常..

if(typeof jQuery === 'undefined'){
var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
    document.head.appendChild(script);

}

答案 2 :(得分:-2)

相反,如果使用script.src尝试使用setAttribute功能。

if (typeof jQuery === 'undefined') {
    var script = document.createElement("script");
    script.setAttribute("type","text/javascript");
    script.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js");
    document.getElementsByTagName("head")[0].appendChild(script);
}