Js动态创建的元素,如何设置他们的样式?我知道委托可以绑定事件,但是不知道如何绑定样式。
事件委托针对的是动态被创建的元素的事件,而非元素的样式,我现在所需要的是,当元素js语言动态创建时,及时给它加上一个样式,请注意是样式非事件。我发现事先写好在css里的样...
事件委托针对的是动态被创建的元素的事件,而非元素的样式,我现在所需要的是,当元素js语言动态创建时,及时给它加上一个样式,请注意是样式非事件。
我发现事先写好在css里的样式对这些被js创造出来的元素是无效的,在jquery里面直接用css()函数来设置样式也是无效的。
所以,来此一问,大家肯定有类似的问题,对吧,你们是怎样解决的。
补充:
Js创造出来的元素是一个开源的插件加上去的广告,比如<div class="ad">我是广告</div>,我现在就是想把这个广告干掉,而且我找不到这个元素在何处被创造的,也不知道这个创建广告的js函数写在哪,反正就是搜索不到,没办法。
所以,问题在于,如果动态侦测这个元素,当它一出来时就把它干掉。
或者,让js创建出来的元素的样式display的属性为none也行。
反正我在js里事先写好$('.ad').hide();和css里面写好.ad { display: none; } 这些都没用。 展开
我发现事先写好在css里的样式对这些被js创造出来的元素是无效的,在jquery里面直接用css()函数来设置样式也是无效的。
所以,来此一问,大家肯定有类似的问题,对吧,你们是怎样解决的。
补充:
Js创造出来的元素是一个开源的插件加上去的广告,比如<div class="ad">我是广告</div>,我现在就是想把这个广告干掉,而且我找不到这个元素在何处被创造的,也不知道这个创建广告的js函数写在哪,反正就是搜索不到,没办法。
所以,问题在于,如果动态侦测这个元素,当它一出来时就把它干掉。
或者,让js创建出来的元素的样式display的属性为none也行。
反正我在js里事先写好$('.ad').hide();和css里面写好.ad { display: none; } 这些都没用。 展开
3个回答
展开全部
可以使用脚本框架,例如jQuery或国人的JSer,
设置样式如:
jQuery: $(".ad").css("样式名1", "样式值").css("样式名2", "样式值");
如: $(".ad").css('background-color','red').css('color','green');
JSer除了像上面那样写外,还可以这样:
JSer(".ad").css({backgroundColor:'red', color:'green'});
如果是绑定样式名的话:
jquery: $(".ad").addClass("xxx").addClass("yyy");
JSer: JSer(".ad").addClass("xxx yyy");
看了下你的补充问题,你可以用JSer,像这样做:
JSer.exec(function(){
setInterval(function(){
JSer(".ad").remove();
}, 500);
});
因为不清楚那个ad是什么时候被创建的,因为有可能是网页加载完后过几秒创建的。所以上面的代码创建一个定时器,直接将.ad广告remove掉。
设置样式如:
jQuery: $(".ad").css("样式名1", "样式值").css("样式名2", "样式值");
如: $(".ad").css('background-color','red').css('color','green');
JSer除了像上面那样写外,还可以这样:
JSer(".ad").css({backgroundColor:'red', color:'green'});
如果是绑定样式名的话:
jquery: $(".ad").addClass("xxx").addClass("yyy");
JSer: JSer(".ad").addClass("xxx yyy");
看了下你的补充问题,你可以用JSer,像这样做:
JSer.exec(function(){
setInterval(function(){
JSer(".ad").remove();
}, 500);
});
因为不清楚那个ad是什么时候被创建的,因为有可能是网页加载完后过几秒创建的。所以上面的代码创建一个定时器,直接将.ad广告remove掉。
展开全部
Js加载的浮动广告一般都写的行间样式,优先级比css设置的样式高;
你另外写的$('.ad').hide();无效估计跟js加载顺序有关,把这句加在页面最底部试试
你另外写的$('.ad').hide();无效估计跟js加载顺序有关,把这句加在页面最底部试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$('.ad').hide();无效估计跟js加载顺序有关,把这句加在页面最底部试试
同意
setTimeout("$('.ad').hide();",1000);这样也行
同意
setTimeout("$('.ad').hide();",1000);这样也行
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询