【发布时间】:2017-01-19 17:36:50
【问题描述】:
我正在尝试使用具有循环的函数将 css 应用于 javascript
this.addcss = function(ele , css){
for(var k in css)
ele.style[k] = css[k];
return true;
}
this.addcss(bodyDiv,{"height":"auto" , "width":"400px auto" , "border":"solid 2px black"});
Div bodyDiv 不为空。
此代码不起作用。 我的控制台也没有出现任何错误
我也尝试过这样做,但没有成功:
this.addcss = function(ele , css){
for(var k in css)
ele.style.k = css.k;
return true;
}
原来问题出在元素替换上:
之前我使用此代码将元素替换为其他元素:
var Obj = element;
if(Obj.outerHTML) { //if outerHTML is supported
Obj.outerHTML=replacementHtml; ///it's
}
else { //if outerHTML is not supported, there is a weird but crossbrowsered trick
var tmpObj=document.createElement("div");
tmpObj.innerHTML = element.innerHTML;
ObjParent=Obj.parentNode; //Okey, element should be parented
ObjParent.replaceChild(tmpObj,Obj); // here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to
ObjParent.innerHTML = ObjParent.innerHTML.replace(ObjParent.innerHTML, replacementHtml);
}
不,我试过这个:
element.parentNode.replaceChild(replacement, element);
它奏效了。
感谢所有的答案。
【问题讨论】:
-
你检查过 DevTools 中的元素吗?
-
什么是bodyDiv?你是怎么得到那个元素的?
-
bodyDiv = document.createElement();
-
你不只是在一个类中设置 css,然后只是将该类添加到元素中吗?
标签: javascript css loops