javascript - 不确定为什么会发生“未捕获的 TypeError:无法读取属性 'setAttribute' of null”以及如何修复
问题描述
单击按钮时,会产生错误“Uncaught TypeError: Cannot read property 'setAttribute' of null”。预期效果是更改链接的 href、innerHTML 和类。按下的按钮和链接位于不同的页面上。
不知道为什么会这样,我的 .js 文件的脚本标签位于我的正文标签的末尾,而且我的 id 似乎没有拼写/大小写问题。
想知道如何修复以及为什么它不能按预期工作。
HTML(带有要编辑的链接的页面)
<body>
<nav class="navbar navbar-expand-md navbar-orange navbar-dark"> <!--Custom colour for navbar bg-->
<a class="navbar-brand" href="index.html">Icon</a>
<button class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navBar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navBar">
<ul class= "navbar-nav ml-auto">
...
<li class="nav-item">
<a class="nav-link active" href="login.html" id="loginIcon">
<span class="fa fa-sign-in"></span> Login</a>
</li>
</ul>
</div>
</nav>
...
<script src="login-script.js"></script>
</body>
HTML(带按钮的页面)
<body>
<div class="text-center p-3">
<a href="index.html" id="loginButton" onclick="loginClick()"
class="btn btn-primary btn-lg col-auto button-white button-text-black" href="#" role="button">Login</a>
</div>
<div class="text-center p-3">
<a href="sign-up.html" id="signUpButton"
class="btn btn-primary btn-lg col-auto button-white button-text-black" href="#" role="button">Or Sign Up Here</a>
</div>
<script src="login-script.js"></script>
</body>
JS
function loginClick(){
document.getElementById("loginIcon").setAttribute("href","account.html");
document.getElementById("loginIcon").setAttribute("class","fa fa-user-plus");
document.getElementById("loginIcon").innerHTML="Account";
};
解决方案
推荐阅读
- php - 根据日期codeigniter计算访问总数
- autodesk-forge - 如何在 Autodesk forge 的 Model Derivative API 中找到 AutoCAD 文件的“闭包”数量?
- azure - 是否可以通过 Azure rest api 或 azure cli 在 Azure Api Management 中添加自定义域
- reactjs - 在本地环境中调试 React 生产构建代码的技巧
- python - 如何在python中正则表达式版本号?
- scalardb - ScalarDb 如何支持分页
- reactjs - 离开主页时,React-router V-5.2.0 无法正常工作
- android - 如果Expo React Native App中的文本长度超过2行,如何显示阅读更多按钮
- python-3.x - 如何在python中创建一个可以运行其他python程序的终端
- kubernetes-helm - fluentd gelf插件参数设置