Присвоение атрибута
Всем привет. Скажу сразу, что я на самой первой ступени изучения js и DOM. В процессе обучения пилю сайт. Нужна ваша помощь в таком вопросе. Есть элемент А(aside), имеющий два состояния, в первом из которых у него есть атрибут visibility, в другом его нет. Так же, есть элемент Б(tm-section). Задача состоит в том, чтобы элемент Б при первом состоянии элемента А приобретал padding-left со значением 100px. То что я накатал, конечно, не работает:
var nomenu = document.getElementsByTagName('aside');
var contentPaddingLeft = document.getElementsByClassName(['tm-section']);
if(nomenu.getAttribute('visibility') === true) {
console.log("No padding");
} else {
contentPaddingLeft.setAttribute(['padding-left'], '100px');
};
|
советую использовать свойство display (у него лучше поддержка браузерами) и писать такие темы в раздел "Элементы интерфейса" или в "Общие вопросы javascript". Если бы вы написали в одних из этих разделов то ответ бы получили ещё вчера.
Вы печатаете в консоль и должны были увидеть там 2 ошибки. Они говорят вам о том, что переменные nomenu и contentPaddingLeft являются коллекциями, а вам нужен в этих коллекциях определённый элемент (нулевой скорее всего) Также интересные вещи происходят при сравнении: метод getAttribute выдаст вам строку. Причем выдаст то, что записано в атрибуте элемента. Т.е. для элемента <aside visibility="nbufgd"></aside> выдаст строку nbufgd А дальше идёт сравнение строки с булевым значением true, и у меня для вас плохие новости:
alert('true' === true)
alert('true' == true)
короче говоря ваш скрипт должен был выглядеть примерно так:
var nomenu = document.getElementsByTagName('aside')[0];
var contentPaddingLeft = document.getElementsByClassName(['tm-section'])[0];
if(nomenu.getAttribute('visibility') === 'true') {
console.log("No padding");
} else {
contentPaddingLeft.setAttribute(['padding-left'], '100px');
};
|
Спасибо, огромное! К сожалению не заработало, буду дальше колдовать))
|
Цитата:
Либо ссылку на тестовую демо страницу, Либо на заливку демки в песочницу |
то чувство когда чел не юзает MVC))))) и состояние хранит во вьюхе
|
| Часовой пояс GMT +3, время: 16:36. |