#html #typescript #dom #dom-manipulation
#HTML #typescript #dom #dom-манипуляция
Вопрос:
Я пытаюсь отредактировать стиль div на странице, чтобы скрыть его. Я могу сделать что-то вроде этого
let mainPanelFirstChild = document.getElementById("jp-main-content-panel")
.children[0];
(mainPanelFirstChild as HTMLElement).style.display = "none";
с элементами, которые имеют атрибуты id, но элемент, который я хочу скрыть, не имеет атрибута id.
Вот код, который работает не так, как ожидалось:
const closeIconNodeList = document.querySelectorAll(
".p-TabBar-tabCloseIcon"
);
closeIconNodeList.forEach((node) => {
console.log(node);
(node as HTMLElement).style.display = "none";
});
console.log
показывает элемент так, как я ожидал, однако изменение style.display
атрибута ничего не дает. Я попытался выполнить цикл document.querySelectorAll
с помощью обычного цикла for для прямого обращения к элементам. Это тоже ничего не дало.
Комментарии:
1. Возвращаюсь к некоторым моим старым ответам. @wes — если это помогло решить вашу проблему, не могли бы вы отметить этот ответ правильным, щелкнув галочку? Это поможет другим, у кого возникнут подобные проблемы в будущем. — Счастливого кодирования!
Ответ №1:
Я использовал часть вашего кода для создания рабочего фрагмента того, что вы, возможно, пытаетесь выполнить.
РЕДАКТИРОВАТЬ: обновленный фрагмент для использования цикла вместо
//if you choose to use querySelectorAll then you must either target a specific element or loop through the available elements that you want to target with class ".p-TabBar-tabCloseIcon"
//if you are only targeting one element then use document.querySelector instead
//here we will use querySelectorAll like in your example
var closeIconNodeList = document.querySelectorAll(".p-TabBar-tabCloseIcon");
//below I have created a loop to check the amount of elements in the array that is output using querySelectorAll
//the hideMe function will hide all elements in the array that use class "p-Tabbar-tabCloseIcon"
const hideMe = function() {
for (var x = 0; x < closeIconNodeList.length; x )
closeIconNodeList[x].style.display = 'none';
};
<div class="p-TabBar-tabCloseIcon">Hide me</div>
<div class="p-TabBar-tabCloseIcon">Hide me 2</div>
<div class="p-TabBar-tabCloseIcon">Hide me 3</div>
<button onclick="hideMe();">Click To Hide</button>
Комментарии:
1. Однако это не относится к typescript. @wes использовал typescript