Javascript 如何在下一个/上一个元素中隐藏/显示?
我目前正在这里从事一个项目: 我需要关于如何使一个图像的大小大于另一个图像的帮助。 我编写的函数一直在给出“无法读取null的类列表” 以下是js:Javascript 如何在下一个/上一个元素中隐藏/显示?,javascript,html,sass,Javascript,Html,Sass,我目前正在这里从事一个项目: 我需要关于如何使一个图像的大小大于另一个图像的帮助。 我编写的函数一直在给出“无法读取null的类列表” 以下是js: const images = document.querySelectorAll('.images'), headings = document.querySelectorAll('.heading'); images.forEach(image =>{ image.addEventListener('click', (e
const images = document.querySelectorAll('.images'),
headings = document.querySelectorAll('.heading');
images.forEach(image =>{
image.addEventListener('click', (e) =>{
image.classList.toggle('box-active')
if(e.target === image.firstElementChild){
if(image.nextElementSibling.classList.contains('box-active')){
image.nextElementSibling.classList.remove('box-active')
}
}
if(e.target === image.lastElementChild){
if(image.previousElementSibling.classList.contains('box-active')){
image.previousElementSibling.classList.remove('box-active')
}
}
// headings.forEach(heading =>{
// heading.classList.toggle('letter-active')
// })
})
})
您的问题似乎是比较了错误的div。例如,当您单击最后一个图像时,此操作将中断。它将抛出该错误,因为它匹配
e.target==image.firstElementChild
,但没有image.nextElementSibling
例:
在这种情况下,image
是包装实际图像的div。当您检查匹配的大小写e.target==image.firstElementChild
时,因为firstElementChild
是实际的img
标记。问题是image.nextElementSibling
为空,因为image
div后面没有其他同级
您的问题似乎是比较了错误的div。例如,当您单击最后一个图像时,此操作将中断。它将抛出该错误,因为它匹配
e.target==image.firstElementChild
,但没有image.nextElementSibling
例:
在这种情况下,image
是包装实际图像的div。当您检查匹配的大小写e.target==image.firstElementChild
时,因为firstElementChild
是实际的img
标记。问题是image.nextElementSibling
为空,因为image
div后面没有其他同级
您能发布与此相关的html吗?您能发布与此相关的html吗?
// index.html
...
<div className="images last-img">
<img
src="https://images.pexels.com/photos/1755243/pexels-photo-1755243.jpeg?cs=srgb&dl=pexels-zhaocan-li-1755243.jpg&fm=jpg"
alt="snow mountain"
height="700"
className="picture"
/>
<h1 className="heading4 heading">Snow Mountain</h1>
</div>