如何使用JavaScript查找子页面元素

时间:2019-05-03 13:11:39

标签: javascript html asp.net asp.net-mvc

我正在开发一个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获得一个空值时,单击它无法触发任何功能。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

解决方案:通过将const subPageBtnEle = document.getElementById("sub-btn");移动到document.addEventListener("DOMContentLoaded", function ()之外来解决此问题。

由于这样做,现在该功能可以按预期工作。

感谢大家的帮助!