我写一个函数想要设置或获取样式属性值:
function $(ID){return document.getElementById(ID);}
Object.prototype.css=function(style,value){
if(value==undefined){
return eval("this.style."+style);
}
else{
if(isNaN(value)){
return eval("this.style."+style+"=\""+value+"\"");
}
else{
return eval("this.style."+style+"="+value);
}
}
}
function ad(){
$("ad_ol").css("top","-170px");
}
它可以在FireFox,Chrome和IE9中正常运行,但在IE7和IE8中无法正常工作,错误信息是:对象不支持“css”属性或方法
谁可以帮助我?是“这个”问题?有更好的功能可以做到这一点吗?答案 0 :(得分:1)
不需要eval,代码中还有其他缺陷 尝试使用类似的东西:
function css(prop,value){
value = value || '';
if(prop) {
this.style[prop] = value;
return this.style[prop];
}
return true;
}
function $(ID){
var element = document.getElementById(ID || 'nodId');
if(element) {
element.css = css; // create css method for this element
}
return element; // Note: element is null if no ID was provided
}
$("ad_ol").css("top","-170px"); //=> should work now