Javascript 基于ID和特定属性值向元素添加CSS类
如果Javascript 基于ID和特定属性值向元素添加CSS类,javascript,jquery,html,css,web,Javascript,Jquery,Html,Css,Web,如果id具有特定的style属性,我想使用jQuery向body添加一个新的class。 为什么这个代码不起作用 if ($('#myID').css('display') == 'none'){ $('body').addClass('loaded'); } 提前谢谢你 我找到了解决办法。当我不停地检查时,它就起作用了,而不仅仅是一次: function check_loader(){ if ($('#ple-loader-wraps99').css('display') =
id
具有特定的style
属性,我想使用jQuery
向body
添加一个新的class
。
为什么这个代码不起作用
if ($('#myID').css('display') == 'none'){
$('body').addClass('loaded');
}
提前谢谢你 我找到了解决办法。当我不停地检查时,它就起作用了,而不仅仅是一次:
function check_loader(){
if ($('#ple-loader-wraps99').css('display') == 'none'){
$('body').addClass('loaded');
};};
window.setInterval(check_loader,1000);
您可以使用
MutationObserver
API侦听特定DOM节点上的DOM更改,然后触发操作:
const targetNode=document.getElementById('my-id');
//指定要观察的突变(选项)
const config={attributes:true};
//模拟预加载操作(网页加载)
setTimeout(函数(){
document.querySelector(“#我的id”).style='display:none;'
}, 1000)
//观察到突变时执行的回调函数
常量回调=函数(mutationsList,observer){
console.log(`Mutation type:${mutationsList[0].type}`)
log(`ID${mutationsList[0].target.ID}`);
//在此处对目标元素进行必要的更改
document.querySelector('body').classList.add('loaded');
};
//创建链接到回调函数的观察者实例
const observer=新的MutationObserver(回调);
//开始观察目标节点是否存在已配置的突变
observer.observe(targetNode,config)代码>
。已加载{
背景颜色:深红色;
}
加载..
myID的HTML是什么样子的?何时/如何运行该代码?假设元素存在,则运行该代码时工作正常:一定存在其他潜在问题。可能是“在元素存在之前运行”的典型情况ID是预加载程序的一部分。样式属性“显示:无”仅在网站完全加载时添加。在预加载程序隐藏后,我需要向正文中添加一个类。预加载程序库是否公开了加载完成后可以挂接的任何事件?如果没有,我建议找一个这样做的,因为这是目前为止做你需要的事情的最好方式,所以你的间歇时间将永远持续下去,即使在增加了课程之后?考虑使用递归超时来代替。@ Taple,好的,谢谢。你有一个例子吗?也许我可以用“如果是真的”来结束这个函数?@Taplar谢谢!我稍后会尝试,或者您可以只存储您的间隔id(从setInterval
返回),然后在满足条件时清除间隔。