等待/检查元素是否存在是前端开发中常见的需求,可以通过以下几种方法来实现:
setInterval
函数定时检查元素是否存在,直到元素出现或超过设定的时间。示例代码如下:function checkElement() {
var element = document.getElementById('elementId');
if (element) {
// 元素存在,执行相应操作
clearInterval(timer);
}
}
var timer = setInterval(checkElement, 1000); // 每隔1秒检查一次
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
var element = document.getElementById('elementId');
if (element) {
// 元素存在,执行相应操作
observer.disconnect();
}
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
function waitForElement() {
return new Promise(function(resolve) {
var element = document.getElementById('elementId');
if (element) {
// 元素存在,执行相应操作
resolve();
} else {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
var element = document.getElementById('elementId');
if (element) {
// 元素存在,执行相应操作
observer.disconnect();
resolve();
}
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
}
});
}
async function checkElement() {
await waitForElement();
// 元素存在后的操作
}
checkElement();
以上是几种常见的等待/检查元素是否存在的方法,根据具体的场景和需求选择适合的方法即可。
领取专属 10元无门槛券
手把手带您无忧上云