Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   document.getElementById('').style.display ничего не возвращает (https://javascript.ru/forum/css-html-internet-explorer/9137-document-getelementbyid-%27%27-style-display-nichego-ne-vozvrashhaet.html)

rolling 30.04.2010 16:32

document.getElementById('').style.display ничего не возвращает
 
В ИЕ не работает такая строка:
status = document.getElementById('submenu_mine').style.display;

В др. браузерах - все ок. Что делать?

Nekromancer 30.04.2010 16:34

показать полный код

rolling 30.04.2010 16:42

<div id="submenu_mine">
...
</div>';

<a href=# onclick="show_submenu()" />


function show_submenu()
{
status = document.getElementById('submenu_mine').style.display;
....
}

Nekromancer 30.04.2010 16:51

Ну всё нормально должно работать.. разве что на ссылку нельзя тыкнуть :-?

Ну если ничего не задано в inline-style то ничего и не получишь.. используем поиск на тему getCompustedStyle и currentStyle

rolling 30.04.2010 17:38

вот именно, что во всех остальных браузерах работает. А в ИЕ - нет.

MeFCorvi 30.04.2010 19:13

Значит остальные браузеры работают неправильно :-) Как правильно заметил, Nekromancer, если в аттрибуте DOM элемента style ничего не задано, то и результата не должно быть.

Если действительно необходимо получить значение, то это можно сделать через getComputedStyle/currentStyle(или банально воспользоваться jquery, чтобы не изобретать велосипед), но я думаю, что можно обойтись и без этого, априори полагая, что если style.display !== 'none', то элемент видимый.

subzey 01.05.2010 01:09

Я особо не уверен и проверить не могу, но меня смутило кое-что.

В функции используется переменная status, но не определяется через var.
Внешней областью определения для этой функции является window, а в нем уже есть такая переменная - window.status, т.е., содержимое статусной строки браузера.


Часовой пояс GMT +3, время: 09:16.