Rumah > Soal Jawab > teks badan
啊错了,发上来的时候眼花了,其实代码是这样的:
请输入代码
styles={"color":"blue","width":"10"}
node=document.getElementById("mart");
for (i in styles){
node.style.i=styles[i];//这里肯定是错的,但是我想表达这个意思,就是i在这里变成styles里面的key。就是把styles里面的键值对赋在style样式里
}
请教一下如何实现我想要的这个效果
T T刚才发现不对,现在纠正了
PHP中文网2017-04-10 14:35:52
1.你的for循环少了左括号.
补上左边括号后.
for(i in styles){
//i 依次输出 a b
console.log(i);
};
2.题目意思的感觉不是很明确,
我猜是想将node对象color和width属性通过for循环来设置某个值那么可以这样
styles={a:'color',b:'width'};
stylesValue = {a:'red',b:'10px'};
for(i in styles){
node.style[styles[i]] = stylesValue[i];
};
大家讲道理2017-04-10 14:35:52
楼上的搞得太复杂了。
styles={"color":"blue","width":"100px"}
node=document.getElementById("backtop");
for (i in styles){
if (styles.hasOwnProperty(i)){
node.style[i]=styles[i];
}
}
天蓬老师2017-04-10 14:35:52
要娶得Object对象的key,并同时修改node的样式的话,建议这么做:
UPDATE:
Object.keys(styles).forEach(function(key) {
node.style[key] = styles[key];
});
题主改完之后,心中疑虑减少了不少。
好吧,补上文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
注意Object.keys和for..in方法之间的区别
两者的主要区别是 for-in 还会遍历出一个对象从其原型链上继承到的可枚举属性
.
为刚才的失误补一张图:
PHP中文网2017-04-10 14:35:52
使用现成的框架可以轻易的做到,为什么还要纠结呢?
$('#mart').css(styles);
http://jsfiddle.net/pingjiang/8j1zfz22/1/