首先,对不起,我不知道如何以不同的方式提出我的问题......
想象一个包含多个订单项目的客户订单表单。
为了更容易和更快地处理表单,提供了复制订单项目的功能。克隆功能会发生这种情况并且可以正常工作。必须更改克隆对象的某些 onclick 属性。例如:
// tr is an tr element of a table
$(":input[type=checkbox]", tr).each(function() {
$(this).removeAttr("onclick").click(function() {
func($(this));
});
});
功能:
function func(chkbx)
{
if (chkbx.checked) {
// do stuff...
} else {
// do other stuff...
}
}
现在的问题是:当原始 tr 对象调用该函数时,一切正常,但是当克隆/复制的 tr 调用该函数时,它总是进入 else 分支。
当然,我检查了传递的对象。从原始 tr-object 传递,它是预期的 HTMLInputElement,但从克隆的它是“正常”对象。奇怪的是,当我检查他们是否都有“已检查”属性时,他们都没有...
我只是希望该功能也能对克隆对象正常工作..
我希望有人可以提供帮助,每个人都理解我 :D 谢谢
更新:问题已解决:
$(chkbx).prop("checked")
代替
chkbx.checked
但我想知道为什么 attr() 函数确实导致未定义?