влиять на все узлы с общим классом - PullRequest
1 голос
/ 23 февраля 2012

У меня есть страница с элементами div, каждый из которых имеет несколько классов.

<div class='publication parent20'></div>
<div class='publication parent12 parent42 parent91'></div>
<div class='publication parent20'></div>
<div class='publication parent32 parent23'></div>

Мне нужна функция, которая принимает класс, переданный ей как переменную, устанавливает для них стиль всех элементов div с классом публикации равным none, а затем устанавливает теги с указанным классом.

function swap_pub(pub){
  document.getElementById("publication").style.display = "none";
  //set style.display = "block" to all elements with class = pub

} 

любые мысли о том, как я это сделаю.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Использование getElementsByClassName() MDN

var pubs = document.getElementsByClassName('publication'); // a NodeList

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

Вот как это выглядит при использовании jQuery:

$('.publication').show(); // concise
0 голосов
/ 23 февраля 2012

Существует также querySelectorAll, который немного более широко поддерживается, чем getElementsByClassName.

function setDisplay(className, display) {
    var items = document.querySelectorAll('.' + className); 
    var i = items.length;
    while (i--) {
      items[i].style.display = display;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...