Javascript.RU

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

Метод getElementsByClassName()
Добрый день, возник глупый вопрос по поводу работы getElementsByClassName(). Я правда пытался нагуглить, читал руководство.
Суть вопроса проста, почему не работает скрипт?

<div class="box"> box </div>
<div class="box"> box2 </div>

<script>
var bg = document.getElementsByClassName("box");
bg.onmouseover = function() {
		bg.style.background = "#888"
}
</script>

В руководстве сказано:
метод getElementsByClassName() принимает единственный строковый аргумент.
Действительно, если использовать аргумент то обработчик применяется к одному из элементов. Но ведь он должен применяться ко всем элементам с указанным классом если не указан конкретный аргумент. Видимо я что-то упускаю, прошу помочь.
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2015, 13:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

krishna,
надо в цикле применять onmouseover ко всем элементам bg - у Nodelist нет свойства onmouseover, а вот у элементов Nodelist оно вполне может быть
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2015, 15:19
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

krishna,
Цитата:
Но ведь он должен применяться ко всем элементам с указанным классом если не указан конкретный аргумент.
С чего бы? Такое только в jQuery и прочих библиотеках/фреймворках делается автоматом. В чистом JS всё ручками прописывать нужно.

Цитата:
Видимо я что-то упускаю, прошу помочь.
getElementsByClassName() выбирает список элементов. Поставить обработчик можно только одному конкретному элементу.
bg[0].onmouseover = .......
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2015, 20:18
Новичок на форуме
Отправить личное сообщение для krishna Посмотреть профиль Найти все сообщения от krishna
 
Регистрация: 01.03.2015
Сообщений: 2

Спасибо за ответы ребят.
<div class="box"> box </div>
<div class="box"> box2 </div>

<script>
var bg = document.getElementsByClassName("box");
for (var i = 0; i < bg.length; i++) {
bg[i].onmouseover = function() {
		this.style.background = "#888"
}
}
</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кастомный метод для элемента выборки. Casufi jQuery 7 26.09.2013 18:43
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 22:09
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
Как узнать у какого объекта вызван метод. Scalar Events/DOM/Window 4 26.03.2010 11:10
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29