CSS
単純な表示/非表示効果を得るために、要素をクリックするとすぐに、要素の次の兄弟にクラス名を追加したい
次の html 出力があり、要素 ID がありません。
<div class="news-message">
<div class="message-head"> Headline of Message 1 </div>
<div class="message-content"> Here comes the content of message 1 </div>
</div>
<div class="news-message">
<div class="message-head"> Headline of Message 2 </div>
<div class="message-content"> Here comes the content of message 2 </div>
</div>
<div class="news-message">
<div class="message-head"> Headline of Message 3 </div>
<div class="message-content"> Here comes the content of message 3 </div>
</div>
ここで、メッセージの内容を非表示にして、見出しだけを表示したいと思います ( で簡単に実現できますdisplay: none
)。
見出しをクリックするとすぐに、その特定のメッセージの内容が表示されるようにします。
だから私の考えは、メッセージヘッドをクリックしCSS
て「メッセージコンテンツ」に「可視」クラスを追加DIV
し、別のクリックでそれを削除することでした。
そこで、「onClick="changeClass()」を「pm-head」要素と次の JavaScript に追加しました。
function changeClass() {
var hidecontent = document.querySelectorAll('.message-content');
var i;
for (i = 0; i < hidecontent.length; i++) {
hidecontent[i].classList.toggle('visible'); } }
しかし、これにより、そのページのすべての「メッセージコンテンツ」divに表示されるクラスが追加されますが、クリックした「pm-head」要素の次の兄弟に追加する必要があります。
そして、これで jquery や他のフレームワーク/ライブラリを使用することはできません。
申し訳ありませんが、私はJavaScriptが初めてで、おそらく答えやすい質問です。
ありがとうジョン