Как создать функцию для установки или получения значения свойства стиля? - PullRequest
0 голосов
/ 25 февраля 2012

я пишу функцию, хочу установить или получить значение свойства стиля:

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, сообщение об ошибке: Object не поддерживает свойство или метод "css"

кто может мне помочь? это проблема "это"? есть ли лучшая функция может сделать это?

1 Ответ

1 голос
/ 25 февраля 2012

Нет необходимости в 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
...