我开始使用Javascript进行冒险。我陷入了代码的一部分。我想将文件名的赋值更改为html元素中的src属性。我在外部函数中创建文件名,然后将其传递给函数设置new src属性。我不明白为什么它不起作用。当我指定一个确切的文件时,它可以工作有人可以向我解释一下吗? 以下是代码:
index.html
<html>
<head>
<script type="text/javascript" src="navContent.js"></script>
</head>
<body>
<nav>
<ul>
<li>
<a href="#newFile" onclick="showDescriprion('newFile')">newFile</a>
</li>
</ul>
</nav>
<p id="demo"></p>
<section class="description">
<h2 id="nevTitle"></h2>
<script id="nevDescript" src=none></script>
</section>
</body>
</html>
navContent.js
function showDescriprion(chosenNav){
var idDescript = document.getElementById("nevDescript");
document.getElementById("nevTitle").innerHTML=chosenNav;
idDescript.setAttribute("src", chosenNav.toLowerCase().concat(".js"));
//checking
document.getElementById("demo").innerHTML=idDescript.getAttribute("src");
}
newfile.js
document.write(
<dl>\
<dt>Uni</dt>\
<dd>Des</dd>\
</dl>);
问题在于:<script id="nevDescript" src=none></script>
。当我写src="newfile.js"
时,它有效。我想避免做切换案例。这就是我正在做function showDescriprion(chosenNav)
答案 0 :(得分:1)
您要做的是 动态添加新脚本 ,尝试搜索有关它的更多信息。您可以从这里开始 - https://www.danielcrabtree.com/blog/25/gotchas-with-dynamically-adding-script-tags-to-html - 您会发现一些提示以及 document.write 调用在这种情况下无法工作的警告(同样,您忘记使用引号) 。您还可以在Loading scripts after page load?查看上一个问题,@ Nicolas Bouvrette和@Johannes H.发布的答案将不需要使用任何其他库。