Javascript 查找上一个元素的动态子元素
这是我当前的html:Javascript 查找上一个元素的动态子元素,javascript,html,css,Javascript,Html,Css,这是我当前的html: <div class="wrapper"> <div class="label"></div> <div class="warning"></div> // Dynamic </div> <div class="input"></div> . . . // repeated 3 more times 可能错过了一些明显的事情(除了完全虚构) 我想你的问题可能是
<div class="wrapper">
<div class="label"></div>
<div class="warning"></div> // Dynamic
</div>
<div class="input"></div>
.
.
. // repeated 3 more times
可能错过了一些明显的事情(除了完全虚构) 我想你的问题可能是
input.previousElementSibling.removeChild(document.querySelector('.warning');
尝试从previousElementSibling中删除在整个文档中找到的第一个.warning元素
试一试
const warningDiv=input.previousElementSibling.querySelector(“.warning”);
if(warningDiv)warningDiv.remove();
您需要将查询范围限定到上一个元素:
input.previousElementSibling.removeChild(input.previousElementSibling.querySelector('.warning')代码>看起来应该可以,但仍然得到未捕获类型错误:未能在“节点”上执行“removeChild”:参数1不是“节点”类型。
是的,看起来不错,但我得到未捕获类型错误:无法读取null的属性“remove”
啊,我忽略了问题的动态部分。我会编辑来修正这部分也是我的错,但那太好了,谢谢!
const inputs = document.querySelectorAll('.input');
inputs.forEach(input => {
input.addEventListener('focus', () => {
input.classList.remove('input--invalid')
input.previousElementSibling.removeChild(document.querySelector('.warning'));
});
});