我试图获得具有特定类的第一个元素,该元素遵循使用纯JS(无JQuery)单击的元素,但是获取el.nextSibling不是函数错误.最初我使用的是JQuery parents().next()但是想用纯JS做这个:
const togglers = document.querySelectorAll('.toggler');
//console.log(togglers);
togglers.forEach(function(el) {
el.addEventListener('click', function(e) {
//const content = el.innerHTML;
//console.log(content);
el.nextSibling('.folder-content').style.display = 'block';
})
});Run Code Online (Sandbox Code Playgroud)
<div class="folder">
<div class="toggler">Click me 1</div>
<div class="folder-content" style="display: none">
Lorem ipsum
</div>
</div>
<div class="folder">
<div class="toggler">Click me 2</div>
<div class="folder-content" style="display: none">
Lorem ipsum
</div>
</div>Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激 :)
nextElement是一个属性,而不是一个函数,所以你不要使用()它.也就是说,使用nextSibling可以为您提供您不想要的空白内容.相反,你可以使用nextElementSibling:
el.nextElementSibling.style.display = 'block';
Run Code Online (Sandbox Code Playgroud)
const togglers = document.querySelectorAll('.toggler');
//console.log(togglers);
togglers.forEach(function(el) {
el.addEventListener('click', function(e) {
//const content = el.innerHTML;
//console.log(content);
el.nextElementSibling.style.display = 'block';
})
});Run Code Online (Sandbox Code Playgroud)
<div class="folder">
<div class="toggler">Click me 1</div>
<div class="folder-content" style="display: none">
Lorem ipsum
</div>
</div>
<div class="folder">
<div class="toggler">Click me 2</div>
<div class="folder-content" style="display: none">
Lorem ipsum
</div>
</div>Run Code Online (Sandbox Code Playgroud)