Не работает 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, время: 05:42. |