Как найти элементы подстраницы с помощью JavaScript - PullRequest
1 голос
/ 03 мая 2019

Я занимаюсь разработкой веб-приложения и хочу найти кнопку с определенным идентификатором на подстранице, доступ к которой можно получить с помощью навигационной панели. У меня нет проблем при попытке найти кнопку на главной странице по ее идентификатору, но когда я пытаюсь сделать то же самое, она не может найти ее и устанавливается как ноль.

Я использую 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 Ответ

2 голосов
/ 03 мая 2019

Решение: решить эту проблему, переместив const subPageBtnEle = document.getElementById("sub-btn"); за пределы document.addEventListener("DOMContentLoaded", function ().

Благодаря этому теперь функционал работает как положено.

Спасибо всем за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...