次のようなHTMLを組んでおります。
HTML
1<ul class="list"> 2 <li> 3 <div> 4 <p>製品A</p> 5 <ul> 6 <li><label><input type="checkbox" name="nameA[]" value="A-1">製品A-1</label></li> 7 <li><label><input type="checkbox" name="nameA[]" value="A-2">製品A-2</label></li> 8 <li><label><input type="checkbox" name="nameA[]" value="A-3">製品A-3</label></li> 9 <li><label><input type="checkbox" name="nameA[]" value="A-4">製品A-4</label></li> 10 </ul> 11 </div> 12 </li> 13 <li> 14 <div> 15 <p>製品B</p> 16 <ul> 17 <li><label><input type="checkbox" name="nameB[]" value="B-1">製品B-1</label></li> 18 <li><label><input type="checkbox" name="nameB[]" value="B-2">製品B-2</label></li> 19 <li><label><input type="checkbox" name="nameB[]" value="B-3">製品B-3</label></li> 20 <li><label><input type="checkbox" name="nameB[]" value="B-4">製品B-4</label></li> 21 </ul> 22 </div> 23 </li> 24</ul>
checkboxで何か選択されたとき、同じ製品内で選ばれているすべての要素を<p>タグ内に書き換えたいと思っています。
例えば、製品B-2と製品B-3が選ばれたら「製品B-2,製品B-3」と<p>製品B</p>のところを書き換えます。
そこで、以下のように書いてみました。
$('ul.list label').on("click", function(){ var buf=""; $(this).parent('li').each(function(index, element){ if($('input[type="checkbox"]', element).prop("checked")){ if( buf ){ buf=buf + ','; } buf += $(element).text(); } }); console.log(buf); });
選択した値は取得できるのですが、すでに選ばれているものが引用できません。
eachの部分がparentで指定しているので親要素だけのliを見ているのかなと考えているのですが、どのように書けば他のli要素も見に行くでしょうか。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 05:45