Jquery 计算所选复选框的数量,并在适当位置显示值
我想从列表中计算所选复选框的数量,然后在相应的div旁边显示所选复选框的数量。即,如果用户从“狗”列表中选择3个选项,从“鸟”列表中选择2个选项,从“爬行动物”列表中选择1个选项,则按钮旁边的“x”将分别替换为3、2和1,而不是像我目前看到的那样,在狗旁边选择6个选项。我试着回答这个问题 JS小提琴示例 HTMLJquery 计算所选复选框的数量,并在适当位置显示值,jquery,html,checkbox,counter,Jquery,Html,Checkbox,Counter,我想从列表中计算所选复选框的数量,然后在相应的div旁边显示所选复选框的数量。即,如果用户从“狗”列表中选择3个选项,从“鸟”列表中选择2个选项,从“爬行动物”列表中选择1个选项,则按钮旁边的“x”将分别替换为3、2和1,而不是像我目前看到的那样,在狗旁边选择6个选项。我试着回答这个问题 JS小提琴示例 HTML <div id="type1" class="type"> <h3>1.2 Select material v1</h3> &l
<div id="type1" class="type">
<h3>1.2 Select material v1</h3>
<span id="value">x</span>
<button class="bob" type="button" name="material" value="1">Dogs</button>
<span id="value">x</span>
<button class="bob" type="button" name="material" value="2">Birds</button>
<span id="value">x</span>
<button class="bob" type="button" name="material" value="3">Reptiles</button>
</div>
<div id="material1" class="material">
<input class="select_all" type="checkbox" name="tile[]" value="1">Pugs
<input class="select_all" type="checkbox" name="tile[]" value="2">Boxer
<input clas="select_all" type="checkbox" name="tile[]" value="3">Dalmation
</div>
<div id="material2" class="material">
<input class="select_all" type="checkbox" name="tile[]" value="4">Eagle
<input class="select_all" type="checkbox" name="tile[]" value="5">Swan
<input clas="select_all" type="checkbox" name="tile[]" value="6">Budgie
</div>
<div id="material3" class="material">
<input class="select_all" type="checkbox" name="tile[]" value="7">Snake
<input class="select_all" type="checkbox" name="tile[]" value="8">Lizard
<input clas="select_all" type="checkbox" name="tile[]" value="9">Iguana
</div>
1.2选择材料v1
x
狗
x
鸟
x
爬行动物
哈巴狗
拳击手
玩弄
鹰
天鹅
鹦鹉
蛇
蜥蜴
鬣蜥
首先,您有许多重复的id
属性,这些属性无效。您应该将这些更改为类
您实际遇到的问题是因为updateCounter()
函数中的逻辑有缺陷。您只需要计算与显示它们的按钮相关的.material
div中的复选框。然后需要遍历DOM以找到相关的.value
元素并更新其文本()。试试这个:
$(document).ready(function() {
$(".bob").click(function() {
var divname = this.value;
$(this).addClass("active")
$("#material" + divname).show().siblings('.material').hide();
});
$('#value').text('');
$("#general-content input:checkbox").on("change", updateCounter);
})
function updateCounter() {
var $material = $(this).closest('.material');
var $value = $(".value").eq($material.index('.material'));
var len = $material.find("input[name='tile[]']:checked").length;
$value.text(len > 0 ? '(' + len + ')' : 'x');
}
这对你很有用)我还删除了你的html中的一些输入错误
$(“.select_all”).change(函数(){
var selectedTypeCount=$(“输入[name=”+$(this).attr('name')+“]:选中”).length;
$(“[id*=”+$(this.attr('name')+“]”)html(selectedTypeCount);
});代码>
1.2选择材料v1
xDogs
xBirds X爬行动物
哈巴狗
拳击手
玩弄
鹰
天鹅
鹦鹉
蛇
蜥蜴
鬣蜥
单击它应该计数的内容???单击它应该计数所选复选框的数量。我已经走了那么远。我现在的问题是要把计数按类型分开。没问题,很乐意帮忙。