难以将变量插入jquery属性标识

Difficulty inserting variable into jquery attribute identification

本文关键字:jquery 属性 标识 插入 变量      更新时间:2023-09-26

我正在尝试使用jquery来检测是否选中了同一组中的另一个文本框。下面的代码显示了我如何在选中高级框时检索组名,并使用它来查看附带的基本框是否选中。问题是,无论基本复选框的条件如何,"basicTrue"总是被指定为"未定义"。

<div id="boxes">
<input style="text-align:center;" type="checkbox" name="group1" value="Basic">
<input style="text-align:center;" type="checkbox" name="group1" value="Advanced">
<input style="text-align:center;" type="checkbox" name="group2" value="Basic">
<input style="text-align:center;" type="checkbox" name="group2" value="Advanced">
</div>
$("#boxes").contents().find(":checkbox").bind('change', function(){        
val = this.checked;
var $obj = $(this);    
if($obj.val()=="Advanced"){
var group = $obj.attr("name");
var basicTrue = $('input[name=group][value="Basic"]').prop("checked");
if(basicTrue)
{
    //Do stuff
}
else
{
    $obj.attr('checked', false);
}
}

这段代码是我用来证明以这种方式格式化的代码有效的概念证明,它确实返回了"group1"中"Basic"复选框的状态。

var basicTrue = $('input[name="group1"][value="Basic"]').prop("checked");

我知道变量"group"被赋予了正确的名称:例如group1。为什么在代码中使用这个变量不起作用?

这些都是变量,需要将它们集中到选择器中的字符串中,如下所示:

$('input[name="' + group + '"][value="Basic"]').prop("checked");

简化版:

$("#boxes input[type='checkbox']").on('change', function(){        
   var bT = $('input[name="'+ this.name +'"][value="Basic"]').prop("checked");
    if( this.value == "Advanced" && bT) {
        //Do stuff
    } else {
        $(this).prop('checked', false);
    }
});