JavaScriptのpushメソッドで配列に要素を追加し、joinメソッドで配列の要素を連結して文字列を生成します。
以下のhtmlの構造でテストします。
<div class="selectItem">
<div>
<label>
<input type="checkbox" value="01" class="partsCheck"><span>HTML・CSS</span>
</label>
</div>
<div>
<label>
<input type="checkbox" value="02" class="partsCheck"><span>Sass</span>
</label>
</div>
<div>
<label>
<input type="checkbox" value="03" class="partsCheck"><span>JavaScript</span>
</label>
</div>
<div>
<label>
<input type="checkbox" value="04" class="partsCheck"><span>jQuery</span>
</label>
</div>
</div>
<p class="selectTxt">未選択</p>
選択されたチェックボックスのテキストはpushメソッドで配列checksに格納します。joinメソッドは指定した文字列で配列の要素を連結します。「'、'」を区切りの文字列にする場合、textメソッドで画面に表示します。配列のデータが1つの場合は配列の区切りがないため区切り文字も表示されません。
$(function() {
$('.selectItem div label').click(function() {
if($('.partsCheck:checked').length <= 0){
$('.selectTxt').text('未選択');
}else{
var checks=[];
$('.partsCheck:checked').each(function() {
checks.push($(this).next().text());
});
$('.selectTxt').text(checks.join('、'));
}
});
});
「'<br>'」を区切りの文字列にする場合、htmlメソッドで画面に表示します。
$(function() {
$('.selectItem div label').click(function() {
if($('.partsCheck:checked').length <= 0){
$('.selectTxt').text('未選択');
}else{
var checks=[];
$('.partsCheck:checked').each(function() {
checks.push($(this).next().text());
});
$('.selectTxt').html(checks.join('<br>'));
}
});
});
textareaタグ内に表示する場合、改行コードの「'\n'」を区切りの文字列にして、valメソッドで表示します。
$(function() {
$('.selectItem div label').click(function() {
if($('.partsCheck:checked').length <= 0){
$('.selectTxtarea').val('未選択');
}else{
var checks=[];
$('.partsCheck:checked').each(function() {
checks.push($(this).next().text());
});
$('.selectTxtarea').val(checks.join('\n'));
}
});
});
なおjoinメソッドの引数(区切り文字)を省略するとデフォルトの「','」カンマが適用され、カンマ区切りの文字列を生成します。





