如何在jquery加载页面后完全动态删除和添加js文件?

Bib*_*hoo 5 javascript css jquery

在我的项目中,我必须在页面加载后动态加载 JS 和 CSS 文件。通过使用下面的代码,我可以添加和删除 js 文件但是通过删除前一个添加新文件后,前一个文件没有显示在标题中但是当我运行代码时,两个 js 文件代码都被执行。不知道如何完全删除文件,有人可以帮助我。为此,代码是。

在视图页面标题中:-

<link rel="stylesheet" id="videoCss" />
<script id="videojs"></script>
Run Code Online (Sandbox Code Playgroud)

用于动态加载 JS 和 CSS 文件的 Jquery:-

function addRemoveJsCssFile(filename, filetype)
    {
        var fileref='';
        if (filetype == "js") { //if filename is a external JavaScript file
            document.getElementById("videojs").remove();
            fileref=document.createElement('script');
            fileref.setAttribute("type", "text/javascript");
            fileref.setAttribute("src", filename);
            fileref.setAttribute("id", "videojs");
        }
        else if (filetype == "css") { //if filename is an external CSS file

            document.getElementById("videoCss").remove();
            fileref = document.createElement("link");
            fileref.setAttribute("rel", "stylesheet");
            fileref.setAttribute("type", "text/css");
            fileref.setAttribute("href", filename);
            fileref.setAttribute("id", "videoCss");
        }
        if (typeof fileref != "undefined")
            document.getElementsByTagName("head")[0].appendChild(fileref)
    }
Run Code Online (Sandbox Code Playgroud)

在此函数中,我们必须传递文件位置和文件类型,即 css 或 js 以动态添加文件。谢谢。

小智 1

与其删除整个元素并创建新元素,不如尝试更改现有元素中的“src”属性?

现在

document.getElementById("videojs").remove();
fileref=document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", filename);
fileref.setAttribute("id", "videojs");
Run Code Online (Sandbox Code Playgroud)

建议

document.getElementById("videojs").setAttribute("src", filename);
Run Code Online (Sandbox Code Playgroud)