私は地面からGoogleのJavascriptが表示/同じクラス名を持つdivを非表示にする - Javascriptを
http://code.google.com/edu/submissions/html-css-javascript/#javascript
は、基本的には同じ名前を持つ複数のdivのクラスを持って実現するものに似た何かを複製しようとしていますし、元のクラス名にクラスを追加することに基づいてそれらの表示/非表示を切り替えます。
相続人は私のマークアップ
<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>
相続人は私の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);
}
}
ロード時のdivの両方がうまく隠すために自分のクラスを設定しているようだが、私はをクリックしたときトップ1はすべて消えますが、ボトムをクリックすると何も起こりません。私は私のforループに問題があると仮定しています、そして、それは(expando = this.parentNode)と言います。私はここからどこに行くのか分かりません。
ご意見やご感想をお寄せください。
まず、同じIDを持つ複数のオブジェクトを持つことはできません。 IDはページ内で一意でなければなりません。したがって、複数のオブジェクトを 'id =" vidItem "'で修正する必要があります。 – jfriend00