Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-加载元素时选择元素_Javascript - Fatal编程技术网

Javascript-加载元素时选择元素

Javascript-加载元素时选择元素,javascript,Javascript,我试图得到一个元素的值。但我面临一个问题 在添加元素一段时间后加载dom内容时 如果我尝试选择它,我会得到null。我尝试了window.addEventListener('DOMContentLoaded',doSomething),但对我没有帮助 通过添加load事件监听器,我对img元素做了类似的事情。但是我不能在这里添加加载事件侦听器,因为它是null document.querySelector('.some-element') 我如何才能做到这一点呢?解决方案没有设置超时,因为我们

我试图得到一个元素的值。但我面临一个问题

在添加元素一段时间后加载dom内容时

如果我尝试选择它,我会得到null。我尝试了
window.addEventListener('DOMContentLoaded',doSomething)
,但对我没有帮助

通过添加
load
事件监听器,我对img元素做了类似的事情。但是我不能在这里添加加载事件侦听器,因为它是
null

document.querySelector('.some-element')

我如何才能做到这一点呢?

解决方案没有
设置超时
,因为我们不知道加载元素的确切时间

document.addEventListener('DomainNodeInserted',函数(事件){
//在这里做点什么
log(“DOM中添加的新元素”)
},对);
setTimeout(函数(){
var d1=document.getElementById('one');
d1.插入相邻的TML('beforeend','two');
}, 2000);
One
我建议您注意对DOM树所做的更改。一旦元素成为DOM的一部分,就可以调用disconnect()函数

const targetNode=document.querySelector(“body”);
const observer=新的MutationObserver((mutationList,observer)=>{
mutationList.forEach((突变)=>{
if(mutation.type==='childList'){
console.log(突变.添加节点);
}
})
});
观察者,观察者(目标节点{
儿童名单:是的,
});
设置超时(()=>{
const someElement=document.createElement(“div”);
someElement.className=“some element”;
someElement.textContent=“Some Element”;
document.body.appendChild(someElement);

}, 1000);您可以使用MutationObserver,您不需要添加超时功能