Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Использование classList.add (https://javascript.ru/forum/events/53758-ispolzovanie-classlist-add.html)

Andrey Kovalchuk 17.02.2015 07:40

Использование classList.add
 
<div class="down">

		<div class="buttons">
			<input type="button" id="button1" src="/assets/atdaru/images/button.png" value="Хабаровск" onclick=ShowBlock("block1","button1")>
		</div>

		<div class="adress_content">
			<div class="adress_content_item" id="block1">
			<p>Текст</p></div>
		</div>
	<br class="clearfloat">
	</div>


function ShowBlock (id_block, id_button){
	
	document.getElementById('id_block').classList.add('active');
	document.getElemnetById('id_button').classList.add('active');
	}


Выдает ошибку Uncaught TypeError: Cannot read property 'classList' of null

Верно ли я понимаю, что эта ошибка говорит нам о том, что не существует класса active и посему classList у нас функция пустая?

Но ведь класс active существует. Подскажите, где я не прав и как сделать так, чтобы работало.

krasovsky 17.02.2015 07:56

js и знать не знает о каких то там css классах.
Это значит что невозможно прочитать атрибут classList у объекта null. А атрибут ты пытаешься получить у document.getElementById('id_block'). Следовательно document.getElementById('id_block') == null

ksa 17.02.2015 08:55

Цитата:

Сообщение от Andrey Kovalchuk (Сообщение 356911)
function ShowBlock (id_block, id_button){
	
	document.getElementById('id_block').classList.add('active');
	document.getElemnetById('id_button').classList.add('active');
	}

Это полная фигня...

Такой вариант хотя бы элементы сможет найти нужные

function ShowBlock (id_block, id_button){
	
	document.getElementById(id_block).classList.add('active');
	document.getElemnetById(id_button).classList.add('active');
	}

Andrey Kovalchuk 17.02.2015 10:12

Цитата:

Сообщение от ksa (Сообщение 356923)
Это полная фигня...

Такой вариант хотя бы элементы сможет найти нужные

function ShowBlock (id_block, id_button){
	
	document.getElementById(id_block).classList.add('active');
	document.getElemnetById(id_button).classList.add('active');
	}

Сразу фигня. Несколько грубо. А тут банальное незнание синтаксиса. Спасибо за помощь.

ksa 17.02.2015 10:29

Цитата:

Сообщение от Andrey Kovalchuk
тут банальное незнание синтаксиса

Ты спец - тебе видней...


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