首页 > 解决方案 > 如何使用 javascript 查找子页面元素

问题描述

我正在开发一个网络应用程序,并希望在子页面中找到一个具有特定 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 获得空值,因此单击它时无法触发任何功能。

任何帮助将非常感激。

标签: javascripthtmlasp.netasp.net-mvc

解决方案


解决方案:通过const subPageBtnEle = document.getElementById("sub-btn");移出document.addEventListener("DOMContentLoaded", function ().

因此,现在该功能按预期工作。

感谢大家的帮助!


推荐阅读