※ ChatGPTを利用し、要約された質問です(原文:【JS】phpで作成した多数のdivを操作したい)
【JS】phpで作成した多数のdivを操作したい
このQ&Aのポイント
phpで作成した多数のdivを操作する方法について教えてください。
divを複製して配置しているので、どのdivのボタンを押しても同じ動作しかできません。
phpをいじらずにjavascriptやjQuery、html編集で問題を解決する方法を教えてください。
いつもお世話になっております。
divが縦に沢山ならび、リストとしています。
これは1つ1つ直接タグで書いているのではなく
元のHTMLには1つだけしか書いておらず、phpで複製して大量に配置しております。
それぞれの中に、ボタンと子divがあります。
ボタンを押すたびに、子divのスタイルを変えたいと思います。
そこで以下のコードで試してみました。
当たり前ですが、どのdivのボタンを押しても、1番上のdiv内の子divのスタイルが変わるだけです。
押されたボタンと、同じ親div内に居る子divに対してfanctionを適用させたいのです。
php側をいじらず、javascriptないしjQuery、html編集で解決できる方法はありますでしょうか…。
【html】
<body>
<div id="oyadiv" style="width:500px;border:1px solid #555;padding:10px;">
<p>親divです。phpでたくさん書き出し、リストみたいなかたちにしています。</p>
<div id="kodiv" style="height:100px;border:1px solid #aaa;">子div</div>
<a href="#" onclick="testfanc(); return false;">ボタン</a>
</div>
</body>
------
上記body内の"oyadiv"を、phpで40~50ケほど繰り返し書き出しています。
元となるこのhtmlは、親div内にボタンと子divがある構造でさえあれば、変更できます。
内外に要素を追加することも可能です。
------
【javascript】
var click_i=0; //クリックする度に切り替えるための判定
function testfanc(){
if(click_i>0){
document.getElementById("kodiv").style.display="none";
click_i=0;
}else{
document.getElementById("kodiv").style.display="block";
click_i+=1;
}
}
お詳しい方、何卒ご教授下さい。
お礼
皆様丁寧にご回答くださり、ありがとうございます! とてもシンプルな方法で、理想の動きが実現できたので LancerVIIさんをベストアンサーに選ばせていただきます。 実際の運用は、親子関係がもう一層重なっていたので $(this).parent().parent().find('.divのクラス名').~処理~ という感じになりました。 thisとparentがキモのようなのですね。 findもいろいろなところで使えそうです。 本当に助かりました。ありがとうございました!