

<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li>
</li>
</ul>
</li>
</ul>
3 階層あり、親、子や孫にチェックを入れた時に、その全てに連動してチェックされる方法は
ありますでしょうか ?
親だけチェックして子や孫もチェックされるのはできるのですが、逆ができません。
ちなみに同じつくりのものが下に続くのですが、A と B は連動せず、
ID NAMEも同じものです。
どうぞ、わかる方お願いいたします。
No.1ベストアンサー
- 回答日時:
構造さえ確定できればできないことはないと思いますが
親をチェックして、子孫にチェックがはいる仕組みなら
孫や子をチェックすると親や子にチェックがはいるとなると
常にすべて同じチェック状態になっちゃいますけどそれって意味あります?
つまり、
親をチェック→子・孫にチェックがはいる
子をチェック→親・孫にチェックがはいる
孫をチェック→親・子にチェックがはいる
つまりどこか一つのチェックで十分では?
No.2
- 回答日時:
なさりたいこととその意味がいまいちわかってないのですが・・・
ドキュメント上で最上位に当たるLI要素まで辿って、その子孫のinput[type='checkbox']に全てチェックをいれるってことと解釈しました。(チェックを外すときは処理対象外)
※ ご提示のHTMLはulの閉じタグの数が合わないので、構造が
はっきりしません。(適当に閉じタグを追加しました)
※ 一番外側のulは一つになると思えるのですが、そうはなって
いないので、包含要素としてdiv要素を追加しています。
最初に書いたようにあまり理解できていないので、ご参考までに・・・
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
function hoge(evt){
var e = evt.target || evt.srcElement, li;
if(e.nodeName != "INPUT" || e.type != "checkbox" || !e.checked) return;
while(e){
if(e.nodeName == "LI") li = e;
e = e.parentNode;
}
if(!li) return;
var elms = li.querySelectorAll("input[type='checkbox']");
for(var i = 0; e = elms[i++];) e.checked = true;
}
</script>
</head>
<body>
<div onclick="hoge(event)">
<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li></ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li></ul>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
多階層ドロップダウンのスマホ...
-
同一ページ内で、任意の文字列...
-
複数トリガーで動作するアコー...
-
アコーディオンメニューの開閉制御
-
jspでcssが読み込めない
-
画面の表示位置を指定させて表...
-
ページ読込中に表示が崩れるの...
-
MFCで画像を表示させているので...
-
【CSS】floatで左右に並べた...
-
「画像の上を流れる文字列」を...
-
読み込んだQRコードをフォーム...
-
jQueryで特定のURLの時のみ表示
-
MAX関数を使ってからLEFT JOIN...
-
Gifアニメ、最後のコマに行った...
-
Javascript で共通の処理をどこ...
-
JSPでの画像ファイル表示
-
pythonで、tkinterとpillowの組...
-
一定時間で入れ替わるバナー画...
-
eclipseでcssを使うためには?
-
setAttributeによる画像の差し替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
同一ページ内で、任意の文字列...
-
タブ切り替えの初期表示について
-
ネストされたチェックボックス...
-
JQueryタブのアクティブ アン...
-
Jquery の slide.toggle で要素...
-
ホームページビルダー17のフ...
-
【javascript で動的に a タグ...
-
javascriptで正規表現の検索が...
-
JavascriptのDOMについて
-
javascript テキストエリアを1...
-
for(var i=0;...) の i の値を...
-
クリックで表示、非表示するメ...
-
jQueryで電卓を作っているのですが
-
js ライブラリ iscrollの利用に...
-
jquery ドロップダウンメニュー...
-
プルダウンのメニュー表示について
-
jQueryのhide,showで中の要素が...
-
gridstack.jsについて教えてく...
-
【HP制作】メールフォームの設...
おすすめ情報