【发布时间】:2014-03-11 09:50:02
【问题描述】:
我得到了这个 html 代码
<div class="main"><div class="labels"><p class="values"></p></div ></div>
<div id='tabs'>
<div>
<div class="accordion">
<div class="sub">
<p><input type="checkbox" data="1" value="a"/> <label ></label></p>
</div>
<div class="sub">
<p><input type="checkbox" data="2" value="b"/> <label ></label></p>
</div>
<p><input type="checkbox" data="3" value="c"/><label></label></p>
<p><input type="checkbox" data="4" value="d"/><label></label></p>
</div>
</div>
</div>
和JS
$(document).ready(function() {
labelsValue();
});
function labelsValue(){
var selected = $('input[type=checkbox]:checked').map(function(){
return $.trim($(this).attr('data'));
}).get();
$('.labels .values').text(selected.join(', '));
}
$('input').on('change', function() {
labelsValue();
});
制表符、手风琴、输入值和属性“数据”,a;bels 是由 php 从数组中动态生成的。当复选框选中/取消选中时,我想从 .accordion 中的每个输入中读取数据属性值,并在输入选中/取消选中时显示在 p class="values" dynamic 中。
但是使用此代码,我只能从具有类 .sub 的 div 内的输入中获得来自数据属性的正确显示值。但它不适用于父 .accordion div 中的输入。当我选中这些复选框时,它只显示带逗号的字符串,例如“, , , , ,”。
如何解决它,我希望代码能够与 .accordion div 中的所有子输入一起使用。
帮助别人?
【问题讨论】:
-
你在 $('input') 之后缺少 .on,它应该读作 $('input').on('change', function () {});