Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2015, 19:41
Новичок на форуме
Отправить личное сообщение для blashyrkh Посмотреть профиль Найти все сообщения от blashyrkh
 
Регистрация: 25.12.2015
Сообщений: 2

Присвоение атрибута
Всем привет. Скажу сразу, что я на самой первой ступени изучения 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');
                    };
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2015, 12:12
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

советую использовать свойство 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');
                    };

Последний раз редактировалось EmperioAf, 26.12.2015 в 12:14.
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2015, 14:11
Новичок на форуме
Отправить личное сообщение для blashyrkh Посмотреть профиль Найти все сообщения от blashyrkh
 
Регистрация: 25.12.2015
Сообщений: 2

Спасибо, огромное! К сожалению не заработало, буду дальше колдовать))
Ответить с цитированием
  #4 (permalink)  
Старый 27.12.2015, 14:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от blashyrkh
К сожалению не заработало,
Для полноценной помощи нун приводить полный код HTML для кнопки и скрипта к ней
Либо ссылку на тестовую демо страницу,
Либо на заливку демки в песочницу
Ответить с цитированием
  #5 (permalink)  
Старый 28.12.2015, 14:16
Профессор
Посмотреть профиль Найти все сообщения от Mаxmaxmаximus
 
Регистрация: 29.10.2015
Сообщений: 473

то чувство когда чел не юзает MVC))))) и состояние хранит во вьюхе
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение атрибута тега iframe? Dimaz Общие вопросы Javascript 5 15.12.2012 15:40
Изменение значения атрибута. tiros jQuery 0 05.05.2011 00:13
Изменение значения атрибута. tiros jQuery 0 05.05.2011 00:06
Не могу получить значение атрибута DenQ jQuery 9 06.02.2011 14:33
Кроссброузерно определить значение атрибута faunder Общие вопросы Javascript 5 21.02.2009 22:08