我只是想根据复选框的change()事件设置标签值。我的复选框和标签代码是;
<div class="Sell" style="width: 47px;"><input type="checkbox" id="chkSell" class="_1"/></div>
<div class="BuySelllbl" style="width: 10px;"><label id="lblBuySell_1"></label></div>
和JQuery如下;
$("#chkSell").live('change',function(){
var y = $(this).attr("class");
var x = "#lblBuySell" + y;
alert(x);
if(this.checked){
$(x).attr("value","S");
$(x).attr("style","color: red;");
}else{
$(x).removeAttr("value");
}
});
警报每次都会输出标签的正确ID,但在.attr属性中没有设置任何内容。我的语法有什么不对吗?任何帮助都很棒。 谢谢, NickG
答案 0 :(得分:1)
您需要更改验证复选框已选中的方式。
// First method - Recommended
$('#checkbox').prop('checked') // Boolean true
// Second method - Makes code more readable (e.g. in if statements)
$('#checkbox').is(':checked') // Boolean true
// Third method - Selecting the checkbox & filtering by :checked selector
$('#checkbox:checked').length // Integer >0
$('#checkbox:checked').size() // .size() can be used instead of .length
// Fourth method - Getting DOM object reference
$('#checkbox').get(0).checked // Boolean true
$('#checkbox')[0].checked // Boolean true (same as above)
答案 1 :(得分:1)
属性值没有label的任何值,您应该将语句替换为:
$("#chkSell").live('change',function(){
var y = $(this).attr("class");
var x = "#lblBuySell" + y;
alert(x);
if(this.checked){
$(x).html("S");
$(x).attr("style","color: red;");
}else{
$(x).removeAttr("value");
}
答案 2 :(得分:0)
$("#chkSell").live('change',function(){
var x = $("#lblBuySell." + $(this).attr("class"));
if(this.checked == true)
{
x.attr("value","S");
x.attr("style","color: red;");
}
else
x.removeAttr("value");
});
您可以使用长度变量
检查是否未选择任何元素x.length