javascript getElementsByClassName () всегда возвращает ничего? - PullRequest
7 голосов
/ 03 марта 2011

Эй, ребята, Я хочу создать самый простой букмарклет для моего браузера.

javascript:document.getElementsByClassName('source').style.visibility='visible';

У меня есть несколько div.source в моем теле. По умолчанию они установлены на .source { display:none; } с помощью css.

Моя консоль говорит мне: Uncaught TypeError: Cannot set property 'display' of undefined

Когда я нажимаю на букмарклет, все .source divs должны быть видны. Что я тут не так делаю?

Ответы [ 3 ]

21 голосов
/ 03 марта 2011

Возможно, вам понадобится просмотреть результаты, например:

var divs = document.getElementsByClassName('source');
for(var i=0; i<divs.length; i++) { 
  divs[i].style.display='block'
}

А также, как уже упоминалось @ionoy, используйте атрибут display. Я надеюсь, что это помогает.

http://jsfiddle.net/erick/rb7bn/1/

0 голосов
/ 07 августа 2012

Перейти на display. Он отлично работает во многих браузерах и во многих случаях.

0 голосов
/ 03 марта 2011

Есть «видимость» и «дисплей».Это совершенно разные звери.

W3Школы:

видимость

дисплей

...