我正在开发一个Web应用程序,想要在子页面中找到一个具有特定ID的按钮,可以使用导航栏对其进行访问。尝试按其ID在主页上查找按钮时,我没有任何问题,但是当我尝试执行相同操作时,它找不到它并设置为null。
我正在使用VS 2019并运行MVC ASP.NET解决方案。
document.addEventListener("DOMContentLoaded", function () {
const mainPageBtnEle = document.getElementById("main-btn"); // works
const subPageBtnEle = document.getElementById("sub-btn"); // fails
按钮的html如下:
<button type="button" class="btn btn-primary" id="sub-btn">
Button!
</button>
导航栏的html如下:
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Admin" asp-action="Index">Admin</a>
</li>
</ul>
</div>
</div>
</nav>
请注意,我要查找的按钮是“管理”页面的一部分,也是该页面的Index.cshtml视图的一部分。
当subPageBtnEle获得一个空值时,单击它无法触发任何功能。
任何帮助将不胜感激。
答案 0 :(得分:2)
解决方案:通过将const subPageBtnEle = document.getElementById("sub-btn");
移动到document.addEventListener("DOMContentLoaded", function ()
之外来解决此问题。
由于这样做,现在该功能可以按预期工作。
感谢大家的帮助!