Javascript 如何获取复选框的基本值?
编辑:好的,我必须重做这个例子,因为这个问题在我的第一个例子中没有出现Javascript 如何获取复选框的基本值?,javascript,jquery,Javascript,Jquery,编辑:好的,我必须重做这个例子,因为这个问题在我的第一个例子中没有出现 function CheckboxClick(checkbox, check) { this.checked = check; checkbox.click(function (event) { alert(this.checked); }); } CheckboxClick($("#checkbox"), $("#checkbox").attr("checked")); 每次
function CheckboxClick(checkbox, check) {
this.checked = check;
checkbox.click(function (event) {
alert(this.checked);
});
}
CheckboxClick($("#checkbox"), $("#checkbox").attr("checked"));
每次单击该复选框时,此.checked的值都会更改。我需要做什么才能让它停止变化?它显然是通过引用赋值的,但我不知道如何得到原语值。我试过valueOf()但那对我不起作用 我想你指的是html源代码中的值 使用jquery 1.6,它有一个新的
prop()
方法,并更改了attr()
的含义,以返回html源中属性的值
从jQuery1.6开始,.attr()方法返回未定义的属性
这还没有确定。此外,不应在上使用.attr()
普通对象、数组、窗口或文档。取回
更改DOM属性时,请使用.prop()方法
属性和属性之间的差异在应用程序中可能很重要
具体情况。在jQuery1.6之前,有时使用.attr()方法
检索某些属性时考虑了属性值,
这可能会导致不一致的行为。从jQuery1.6开始,.prop()
方法提供了一种显式检索属性值的方法,而
.attr()检索属性
啊,问题是,
这个
不是你所期望的这实际上是指触发事件的复选框(DOM元素不是jquery)。因此,当您使用this.checked
时,它相当于jquery语句$(“#checkbox”).attr(“checked”)
,这就是为什么在单击时它会更改的原因。我刚刚将此.checked更改为var checked,并且它可以工作
注意:如果您使用的是jQuery 1.6及以上版本,您还必须使用相同的参数将.attr方法更改为.prop。您的函数末尾缺少一个)代码>。哦,我没注意到。是的,我在飞行中写的。我遇到的问题是一个更复杂的函数,它会把我要做的事情弄得一团糟。我猜这是一个复制错误。添加后,我用prop和attr运行了它,它们按预期工作(bool没有改变):嗯,你说得对。我不得不重做这个例子,使之更接近我最初复制这个问题时所做的。这不是总是提醒“未定义”吗?