ネットで調べまくりましたが、実現できそうなものが見つけられなかったので質問させてください。
checkboxで指定したidとaタグに指定してあるclass名が一致しない<li>~</li>を非表示にしたいのですが、どのようにすれば実現できるでしょうか?下記の例ですと、idに"area12"が指定してある<li>~</li>を非表示にしたいです。どうぞよろしくお願いいたします。
【例】
<li><a href=""><label><input type="checkbox" checkd id="area10"/>鏡水</label></a></li>
<li><a href=""><label><input type="checkbox" checkd id="area11"/>金城</label></a></li>
<li><a href=""><label><input type="checkbox" checkd id="area12"/>三原</label></a></li>
<a class="area10"><img src="~"/></a>
<a class="area11"><img src="~"/></a>
No.2
- 回答日時:
teratailにも書きましたが、こうなります
<script src="js/jquery.js"></script> <!-- jqueryは適当に組み込んでください -->
<script>
$(function(){
$('input[type=checkbox]').on('change',function(){
$('input[type=checkbox]').each(function(){
$('.'+$(this).prop('id')).toggle($(this).prop('checked'));
});
}).change();
});
</script>
<li><input type="checkbox" checkd id="area10"/><label for="area10">鏡水</label></li>
<li><input type="checkbox" checkd id="area11"/><label for="area11">金城</label></li>
<li><input type="checkbox" checkd id="area12"/><label for="area12">三原</label></li>
<a class="area10"><img src="~"/></a>
<a class="area11"><img src="~"/></a>
No.3
- 回答日時:
どこが違うんでしょうね・・・
以下コピペしてみてください
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1. …
<script>
$(function(){
$('input[type=checkbox]').on('change',function(){
$('input[type=checkbox]').each(function(){
$('.'+$(this).prop('id')).toggle($(this).prop('checked'));
});
}).change();
});
</script>
</head>
<body>
<li><input type="checkbox" checked id="area10"/><label for="area10">鏡水</label></li>
<li><input type="checkbox" checked id="area11"/><label for="area11">金城</label></li>
<li><input type="checkbox" checked id="area12"/><label for="area12">三原</label></li>
<a class="area10"><img src="?" alt="area10image" /></a>
<a class="area11"><img src="?" alt="area11image" /></a>
</body>
</html>
No.4
- 回答日時:
誤解していたかもしれませんが、チェックしたら消すのでしょうか?
であればcheckedのチェックを逆転すればよいでしょう
$('.'+$(this).prop('id')).toggle($(this).prop('checked'));
↓↓↓
$('.'+$(this).prop('id')).toggle(!$(this).prop('checked'));
yambejp様
何度もご回答いただきありがとうございます。fujillin様がご指摘されているとおり、私のつたない説明が原因でうまく伝わっていなかったようです。私が実現したかったのは、fujillin様の解釈の通りでした。この質問のみならず、他の質問でも積極的に御回答していただいていたのに。。大変申し訳ございませんでした。私の説明が意図した通り伝わる文章ならきっと解決できる御回答をしていたはずですよね。本当にお手数をお掛けしてすみませんでした
No.5ベストアンサー
- 回答日時:
こんにちは。
横からですが・・・
普通にご質問文を読むと、若干矛盾を感じながらも、
『チェックボックスに対応する画像要素の表示/非表示を制御したい』
というふうに推測できると思いますし、ANo2様がご回答の内容もそうなっています。
一方で、質問文を何度も読んでみて
>特定のクラスを持つ<li>を非表示にする方法
(li要素にクラス設定はされてないけれど…)
><li><input ~~~>三原</label></li>は表示されたままでした
などから妄想をたくましくしてみると、ひょっとすると
『リストの各項目に対応するリンク(画像)要素が文書内に存在しない場合は、そのリストの項目を非表示にしたい』
という意図のご質問なのでしょうか?
ついでながら、リストの項目内のリンク要素の意味は何なのかも謎ですね。
万一、妄想が当たっていた場合はこんな感じでしょうか?
(jQuery等は不要です)
<script type="text/javascript">
window.onload = function(){
Array.prototype.forEach.call(document.querySelectorAll("input[type=checkbox]"), function(e){
var a = e; while(a && a.nodeName != "LI") a = a.parentNode;
if(a && !document.querySelector("a." + e.id)) a.style.display = "none";
});
}
</script>
fujillin様
御回答内容で実現できました。ありがとうございます。ご指摘の通り、意図した内容がうまく伝わる文章ではなかったです。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
どの<li><a> が押されたか判別...
-
質問に答えていくと、回答によ...
-
【javascript で動的に a タグ...
-
クリックした<a>タグのみにClas...
-
DOM の 要素の数え方について
-
javascriptでEnterキーをtabキ...
-
固定ナビのJqueryのアコーディ...
-
<ul>から</ul>の間をjavascriptで
-
jQuery タブメニューへのダイ...
-
戻ってきた時ツリーメニューが...
-
C# ブラウザの自動クリック
-
jQueryで、リンクURLの一致を確...
-
【jQuery】遅延実行(タイムラ...
-
JQueryタブのアクティブ アン...
-
チェックボックスに入っている...
-
オンマウスで画像ロールオーバ...
-
文字と数字が混在する要素のsor...
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
javascriptでEnterキーをtabキ...
-
クリックした<a>タグのみにClas...
-
チェックボックスに入っている...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
「jQuery」アコーディオンメニ...
-
jQueryで、リンクURLの一致を確...
-
jQueryのeqで最後からn番目以降...
-
ネストされたチェックボックス...
-
javascriptで、クリックしたら...
-
onmouseoverの表示切り替えが上...
-
文字と数字が混在する要素のsor...
-
jQueryでネスト構造の<li>がク...
-
タブメニューを上下に設置
-
<li></li>の数を制限
-
jQuery多層式アコーディオンメ...
-
どの<li><a> が押されたか判別...
-
CSSとJavaScriptを使ってドロッ...
-
複数の画像をランダム(シャッ...
おすすめ情報
実現可能であれば、何でも構いません。よろしくお願いいたします!
yambejp様
teratailとどちらにコメントしようかと悩みましたがこちらにコメントさせていただきます。
御回答いただきました内容でプレビュー確認してみましたが、area12の<li>~</li>が表示されたままの状態でした。もう一度ご教授いただければ助かります。
御返事ありがとうございます。<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1. …の部分は最新のCDNにしてあとはコピペで確認してみましたが、<li><input type="checkbox" checked id="area12"/><label for="area12">三原</label></li>は表示されたままでした。度々申し訳ないですが、再度ご教授いただけないでしょうか。