Jquery data()不返回布尔值;为什么?
我是一个非常没有经验的jQuery程序员,在我的小脚本中找不到bug。你能帮忙吗 我想强调一个复选框,如果它的状态与初始值不同。该初始值存储为Jquery data()不返回布尔值;为什么?,jquery,Jquery,我是一个非常没有经验的jQuery程序员,在我的小脚本中找不到bug。你能帮忙吗 我想强调一个复选框,如果它的状态与初始值不同。该初始值存储为data init属性。为选中和未选中输入生成的html如下所示: <td><input checked data-init id="controls-0-modeU" name="controls-0-modeU" type="checkbox" value="y"></td> <td><input
data init
属性。为选中和未选中输入生成的html如下所示:
<td><input checked data-init id="controls-0-modeU" name="controls-0-modeU" type="checkbox" value="y"></td>
<td><input id="controls-1-modeU" name="controls-1-modeU" type="checkbox" value="y"></td>
但是
$init
的值要么是未定义的
(对于最初未检查的输入),要么是空字符串(对于最初检查的输入)。他们两人的评价都是错误的。为什么我不能改为true/false?您可以检查元素是否具有如下属性:
if (!!$(this).attr("data-init")) {
// its there
}
else {
// its not
}
jQuery不会将数据属性视为布尔属性(如checked、readonly等),因此必须给它一个值
<td><input checked data-init="true" id="controls-0-modeU" name="controls-0-modeU" type="checkbox" value="y"></td>
<td><input data-init="false" id="controls-1-modeU" name="controls-1-modeU" type="checkbox" value="y"></td>
复选框上没有
data init
属性…并且有多个复选框,您的代码不完整。您的data init
没有任何值。是否只为选中的复选框设置一个空属性?您想要实现什么?您是否尝试过data init=“false”
?你的属性实际上是empty@VPfB是的,但是数据
是一个自定义属性集,可以包含任何内容。它不是布尔属性,请参见但是为什么呢?尽管如此,他的属性实际上是空的,并且不包含布尔值,因为缺少的属性可以返回未定义的
或假
,这样您就可以将两者都捕获为“falsy”值。我不确定OP是否想要这样做,尤其是考虑到链接的答案。他不是问他是否检查得到的值,而是问他为什么没有得到预期值
<td><input checked data-init="true" id="controls-0-modeU" name="controls-0-modeU" type="checkbox" value="y"></td>
<td><input data-init="false" id="controls-1-modeU" name="controls-1-modeU" type="checkbox" value="y"></td>
var $init = $(this).is("[data-init]");