难以将变量插入jquery属性标识
Difficulty inserting variable into jquery attribute identification
我正在尝试使用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);
}
});
相关文章:
- 使用jQuery属性滚动到数据
- 删除具有jQuery属性的li
- Jquery 属性代码到 Javascript 属性代码
- 使用 *= 的 jQuery 属性选择器
- 奇怪的jquery属性添加到IE8中的复选框上
- HTML 使用 JavaScript 添加具有 JQuery 属性的元素
- 如何将 fadeOut jQuery 属性与 Javascript 文本片段一起使用
- 不区分大小写的 jQuery 属性选择器
- IE中的jQuery属性选择器
- JQuery属性总是返回相同的值
- 任务不可能:jQuery属性选择器
- 如何在jquery插件EasyDate中使用jquery属性
- onclick的jquery属性监听器
- 动态生成的HTML代码没有jQuery属性
- 如何将多个变量从函数传递到jquery属性
- 当Ajax.BeginForm时在Internet Explorer 8上添加的jQuery属性
- JQuery 属性通配符 包含分隔的空格
- jQuery属性自动切换
- 当jquery属性选中复选框时,Angular ng-model不更新
- 理解使用#的jQuery属性选择器