Не работает display:=""
Список не хочет показываться обратно.
li ul.expandable { display: none } var ul; if(objA.nextSibling.nextSibling.tagName == "UL"){//таким способом решил пропустить пробельные ноды ul = objA.nextSibling.nextSibling ; ul.style.display = ''; } Прикол в чём: если указать ul.style.display = "block\inline и т.д.", то всё работает. А я просто хочу отменить none. |
поменяйте имя класса у элемента и тем самым оно отмениться
|
Так ты так стиль, прописанный через css не отменишь. Отменить его можно примерно так:
var rules = document.styleSheets[0].cssRules; for (var i = 0; i < rules.length; i++) { if (rules[i].selectorText == 'li ul.expandable') { rules[i].style.display = ''; } } А style объекта - это то, что находится в его атрибуте style. У тебя же этот атрибут пуст? Ну вот и style.display у тебя тоже пуст. Можешь перед присваиванием проверить. |
Цитата:
|
Цитата:
|
Спасибо. Понятно. Не знал что нельзя отменять прописанное в CSS.
Что ж вы хотите, 2 дня учу JS =) Переопределять style.display - имеется ввиду что то вроде: ?? window.onload = function(){ var elements = document.getElementsByClass("expandable"); //понятно что не байкласс, а там bytagname - переборка элтов, иф атрибут class == expandable и т.д. for(var i = 0; i < elements.length ; i++){ elements[i].style.display = "none"; } } Хотя наверное есть более простой вариант |
Цитата:
Цитата:
|
Ну что то в этом роде я и имел ввиду. Ещё раз спасибо.
Насчёт забили - ну смотря кто. Знакомый в госконторе работает - уже сделали проект, заказчик сказал переделывать под 6-й) Беларусь такая беларусь) |
Не спорю, в некоторых случаях нужна более полная кроссбраузерность. Но я говорю про основную массу разработчиков.
|
Часовой пояс GMT +3, время: 23:47. |