Я пытаюсь повторить что-то подобное тому, что позволяет выполнить Google Javascript с нуляОтображение/скрытие дивы с тем же именем класса - Javascript
http://code.google.com/edu/submissions/html-css-javascript/#javascript
В основном имеют несколько Див классы с таким же именем и показать/скрыть те, основанные на добавлении удаления классов в исходное имя класса.
Heres мой разметки
<div class="vidItem" id="vidItem">
<div class="vidTitle">
<h2></h2>
</div>
<div class="vidContain" id="vidContain">
<iframe class="testtt" width="560" height="315" src="-----" frameborder="0" allowfullscreen> </iframe>
</div>
</div>
<div class="vidItem" id="vidItem">
<div class="vidTitle">
<h2></h2>
</div>
<div class="vidContain" id="vidContain">
<iframe width="560" height="315" src="----" frameborder="0" allowfullscreen></iframe>
</div>
</div>
Heres мой Javascript
var toggleExpando = function() {
var expando = this.parentNode;
if (hasClass(expando, 'hide')) {
removeClass(expando, 'hide');
addClass(expando, 'show');
} else {
removeClass(expando, 'show');
addClass(expando, 'hide');
}
};
var expandos = getElementsByClass('vidContain');
for (var i=0; i < expandos.length; i++) {
addClass(expandos[i], 'hide');
var expandoTitle = document.getElementById('vidItem');
addEventSimple(expandoTitle, 'click', toggleExpando);
}
}
OnLoad обе дивы, кажется, устанавливать свои классы, чтобы скрыть только штраф, но когда я нажимаю на наверху все исчезает, но когда я нажимаю на нижнюю, ничего не происходит. Я предполагаю, что есть проблема с моим циклом for, а также там, где он говорит (expando = this.parentNode). Я понятия не имею, куда идти отсюда.
Любая помощь или идеи будут оценены.
Прежде всего, вы не можете иметь несколько объектов с одинаковым идентификатором. ID должны быть уникальными на странице. Таким образом, вам придется исправить несколько объектов с помощью id = "vidItem". – jfriend00