style.backgroundColor – это пустая строка в JavaScript.

У меня есть следующий код ниже, который я пытаюсь установить цвет фона. Однако цвет фона возвращается как пустая строка. Я не знаю, почему … Это имеет какое-то отношение к типам JavaScript?

function function1(){ var color = document.getElementById('rg_vw.national_avg').style.backgroundColor; //this below appears as an empty alert at runtime. it's an empty string. alert(color) } 

Так же, как проверка работоспособности, если я использую свойство value, оно выводит правильное значение для этого конкретного поля … так что я немного расстроен относительно того, почему backgroundColor является пустой строкой.

 //this works just fine var value = document.getElementById('rg_vw.national_avg').value alert(value) 

Если вы непосредственно не определили backgroundColor самого элемента, вам нужно использовать getComputedStyle() или currentStyle чтобы получить значение свойства style.

Метод, совместимый с несколькими браузерами, будет выглядеть так:

 function getStyle(el,styleProp) { if (el.currentStyle) return el.currentStyle[styleProp]; return document.defaultView.getComputedStyle(el,null)[styleProp]; } 

Вы можете увидеть рабочий пример jsFiddle .

Больше информации:

  • См. Эту страницу для получения дополнительной информации о getComputedStyle() .
  • См. Эту страницу для получения дополнительной информации о currentStyle (IE).
  • Дополнительную информацию о проблемах совместимости браузеров см. На этой странице .