如何创建一个函数来设置或获取样式属性值?

时间:2012-02-25 13:21:55

标签: javascript this

我写一个函数想要设置或获取样式属性值:

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”属性或方法

谁可以帮助我?是“这个”问题?有更好的功能可以做到这一点吗?

1 个答案:

答案 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