gpt4 book ai didi

jQuery .data() 不返回 bool 值;为什么?

转载 作者:行者123 更新时间:2023-12-01 07:44:23 25 4
gpt4 key购买 nike

我是一个非常缺乏经验的 jQuery 程序员,无法在我的小脚本中找到错误。你能帮忙吗?

如果复选框的状态与初始值不同,我想强调该复选框。该初始值存储为 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>

在此处接受的答案中:Retrieve boolean data from data attribute in jquery有:“jQuery .data() 方法可以智能地识别 bool 值和数值并将它们转换为其 native 类型”。这就是我想要的。

我的脚本开头为:

$(document).ready(function(){
$("td input:checkbox").change(function(){
var $init = $(this).data("init")

但是 $init 的值要么是 undefined (对于最初未检查的输入),要么是空字符串(对于最初检查的输入)。它们都评估为 false。为什么我没有得到正确/错误的结果?

最佳答案

jQuery 不会将数据属性视为 bool 属性(如选中、只读等),因此您必须为其指定一个值

<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]");

关于jQuery .data() 不返回 bool 值;为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com