Js动态创建的元素,如何设置他们的样式?我知道委托可以绑定事件,但是不知道如何绑定样式。

事件委托针对的是动态被创建的元素的事件,而非元素的样式,我现在所需要的是,当元素js语言动态创建时,及时给它加上一个样式,请注意是样式非事件。

我发现事先写好在css里的样式对这些被js创造出来的元素是无效的,在jquery里面直接用css()函数来设置样式也是无效的。

所以,来此一问,大家肯定有类似的问题,对吧,你们是怎样解决的。

补充:
Js创造出来的元素是一个开源的插件加上去的广告,比如<div class="ad">我是广告</div>,我现在就是想把这个广告干掉,而且我找不到这个元素在何处被创造的,也不知道这个创建广告的js函数写在哪,反正就是搜索不到,没办法。

所以,问题在于,如果动态侦测这个元素,当它一出来时就把它干掉。
或者,让js创建出来的元素的样式display的属性为none也行。

反正我在js里事先写好$('.ad').hide();和css里面写好.ad { display: none; } 这些都没用。

可以使用脚本框架,例如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掉。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-15
Js加载的浮动广告一般都写的行间样式,优先级比css设置的样式高;
你另外写的$('.ad').hide();无效估计跟js加载顺序有关,把这句加在页面最底部试试
第2个回答  2012-10-16
$('.ad').hide();无效估计跟js加载顺序有关,把这句加在页面最底部试试
同意
setTimeout("$('.ad').hide();",1000);这样也行本回答被提问者和网友采纳
相似回答