2010-02-19 3 views
2

Почему это не работает? Он должен проверить элемент для стиля display css.Почему этот стиль не работает?

if (byId("annonsera_price").style.display=='inline' || byId("annonsera_price").style.display=='block'){ 
alert ("Hello"); 
} 

function byId(x){ 
     return document.getElementById(x); 
} 

Update2:

<input style="width:100px;" type="text" name="annonsera_price" id="annonsera_price"> 

Я не установить его с помощью CSS либо!

+0

Btw, что не работает в том, что окно предупреждения не отображаются , даже несмотря на то, что на дисплее действительно установлено значение «block»! – 2010-02-19 19:00:08

+1

Делает byId ("annonsera_price"). Style.display возвращает "block"? – Laserson

+0

нет, он возвращает пустое поле оповещения! – 2010-02-19 19:02:31

ответ

3

Сначала попробуйте оповещения только style.display и посмотреть, что он содержит:

var el = document.getElementById("annonsera_price"); 
alert(el.style.display); 

style только ссылается на то, что в атрибуте стиля (или установить через JS на свойства стиля). Возможно, что дисплей установлен через класс, и поэтому el.style.display ничего не покажет.

[Обновление]: Учитывая обновление, причина не возникает, потому что style.display будет «", а не «встроенным» или «блочным». Он не будет «встроенным» или «заблокированным», пока вы его не установили, либо в атрибуте style, либо установив .style.display.

+0

Вы можете использовать его в инструкции if, поэтому я говорю, что вам нужно сообщить нам, что он возвращается. Если я настрою свой собственный элемент, ваш код будет работать для меня. Нам нужно выяснить, что содержит элементы, с которыми вы имеете дело. – Nicole

+0

Я был неправ, я не установил его с помощью css вообще ... проверить обновление – 2010-02-19 19:08:14

+0

Предупреждение возвращает пустое поле оповещения ... Нет значения! – 2010-02-19 19:11:12

5

Если стиль устанавливаются с помощью CSS или стиль по умолчанию, вам нужно получить вычисленный стиль элемента:

var el = document.getElementById("annonsera_price"); 

// currentStyle for IE, getComputedStyle for standards-compliant browsers 
var style = el.currentStyle || window.getComputedStyle(el); 

if (style.display == "inline" || style.display == "block") 
    alert("Hello"); 
+0

Это интересно. Я всегда использую такие инструменты, как FireBug или IEDevtoolbar, чтобы узнать об этом, но всегда приятно знать, как это сделать с помощью кода – SBUJOLD

Смежные вопросы