我编写的以下代码应该有一行复选框,选中后,会在单独的div中显示该复选框的标签。
<div class="span3" id="bill">
<label class="checkbox">
<input type="checkbox" value="" id="item1" checked="checked">
Item1 - Price
</label>
<label class="checkbox">
<input type="checkbox" value="" id="item2" checked="checked">
Item2 - Price
</label>
</div>
<div class="span3" id="currBill">
<label id="item1_lb">
Item1 - Price
</label>
<label id="item2_lb">
Item2 - Price
</label>
</div>
</div>
<div class="row-fluid">
<button class="btn" id="pay">Pay</button>
</div>
以下js负责在选择/取消选择时显示标签(知道这一点很麻烦,以后所有的复选框都会从数据库填写,这只是一些地方,为我的问题的一般概念保存代码。 )
这两个函数似乎都没有工作,on click函数至少触发,但实际上并没有隐藏任何东西。有什么想法吗?
$(function() {
$('input:checkbox').bind('change',(function() {
$('#'+ithis.id+'_lb').toggle($(this).is(':checked'));
});
$("#pay").click(function() {
$("#bill input[type=checkbox]").each(function() {
if($(this).checked)
{
$(this).parent().hide();
$(this).checked = false;
}
});
});
});
答案 0 :(得分:2)
$(this).checked
尝试访问jQuery集合属性checked
。您可以通过.prop
方法更改元素属性。
if ($(this).prop('checked')) {
...
$(this).prop('checked', false);
答案 1 :(得分:1)
您应该使用浏览器控制台检查错误(按Ctrl+Shift+J
)。您有以下错误:
('change',(function()
中,删除function
关键字前的括号。ithis.id
应为this.id
。if($(this).checked)
应该像您先做的那样:if($(this).is(':checked'))
$(this).prop('checked', false);