Javascript 美元。伊纳雷给出-1?
这应该是非常直截了当的: HTML 给我-1 有趣的是,如果我将jquery代码中的一个数字“$(thumba).data(“id”)替换为“26”,它就可以工作了 在这种情况下,结果应该是“2”Javascript 美元。伊纳雷给出-1?,javascript,jquery,Javascript,Jquery,这应该是非常直截了当的: HTML 给我-1 有趣的是,如果我将jquery代码中的一个数字“$(thumba).data(“id”)替换为“26”,它就可以工作了 在这种情况下,结果应该是“2” 有什么想法吗?您需要将值转换为字符串 var thumbaid = $('#thumba').data("id").toString(); 为什么。。。?如果你愿意 console.log(itemids_array); 你会看到这个 ["28", "27", "26", "17", "18",
有什么想法吗?您需要将值转换为字符串
var thumbaid = $('#thumba').data("id").toString();
为什么。。。?如果你愿意
console.log(itemids_array);
你会看到这个
["28", "27", "26", "17", "18", "19", ""]
它们不是数字,而是字符串。请参见您需要将值转换为字符串
var thumbaid = $('#thumba').data("id").toString();
为什么。。。?如果你愿意
console.log(itemids_array);
你会看到这个
["28", "27", "26", "17", "18", "19", ""]
它们不是数字,而是字符串。请参见它不起作用的原因是jQuery数据返回的是int not字符串 看看这个例子
<a href="url" id="thumba" data-id="26">my link</a>
<input type="hidden" id="pageids" value="28,27,26,17,18,19,">
它不起作用的原因是jQuery数据返回的是int而不是字符串 看看这个例子
<a href="url" id="thumba" data-id="26">my link</a>
<input type="hidden" id="pageids" value="28,27,26,17,18,19,">
这是因为
thumbaid
是一个数字,itemids\u数组
包含字符串。尝试var currentpos=$.inArray(thumbaid.toString(),itemids\u数组)代码>
jQuery的data
函数读取data-
属性并将数字解析为数字 这是因为thumbaid
是一个数字,而itemids\u数组包含字符串。尝试var currentpos=$.inArray(thumbaid.toString(),itemids\u数组)代码>
jQuery的data
函数读取data-
属性并将数字解析为数字 jQuery的data
函数在初始化时对从data-*
属性读取的数据进行处理,包括将类似数字的字符串转换为数字。由于$.inArray
执行=
检查,因此它失败。最后在字符串数组中查找数字26
如果您只是使用.attr(“数据id”)
,转换就不会发生
此行为记录在:
每次尝试都会将字符串转换为JavaScript值(包括布尔值、数字、对象、数组和null)。只有在不改变值的表示形式的情况下,才会将值转换为数字。例如,“1E02”和“100.000”等同于数字(数值100),但转换它们会改变它们的表示形式,使它们保留为字符串。字符串值“100”被转换为数字100
如果您只使用data
来读取data-*
属性,我建议使用attr
来避免这种情况,并避免由于data
从data-*
属性初始化时,设置数据时不会写入属性而造成的混乱。当然,如果您需要存储与元素相关联的数据,并且不希望它出现在属性上(因为它不是字符串数据,或者您不希望它显示在DOM检查器中),data
是该工作的正确工具。jQuery的data
函数对初始化时从data-*
属性读取的数据进行处理,包括将类似数字的字符串转换为数字。由于$.inArray
执行=
检查,因此它失败。最后在字符串数组中查找数字26
如果您只是使用.attr(“数据id”)
,转换就不会发生
此行为记录在:
每次尝试都会将字符串转换为JavaScript值(包括布尔值、数字、对象、数组和null)。只有在不改变值的表示形式的情况下,才会将值转换为数字。例如,“1E02”和“100.000”等同于数字(数值100),但转换它们会改变它们的表示形式,使它们保留为字符串。字符串值“100”被转换为数字100
如果您只使用data
来读取data-*
属性,我建议使用attr
来避免这种情况,并避免由于data
从data-*
属性初始化时,设置数据时不会写入属性而造成的混乱。当然,如果您需要存储与元素相关联的数据,并且不希望它出现在属性上(因为它不是字符串数据,或者您不希望它显示在DOM检查器中),data
是该作业的正确工具。$()。data()
将数据-*
属性的值转换为JavaScript值。在您的情况下,thumbaid
将转换为数字
$.inArray
使用严格相等运算符(==)比较元素。也就是说,'26'==26
返回false,因为没有发生类型强制
从文档中:
每次尝试都会将字符串转换为JavaScript值
(这包括布尔、数字、对象、数组和null)。价值
仅当这样做不会更改值的
代表性。例如,“1E02”和“100.000”等同于
数字(数值100),但转换它们会改变
表示,以便将它们保留为字符串。字符串值“100”为
转换成数字100
$().data()
将数据-*
属性的值转换为JavaScript值。在您的情况下,thumbaid
将转换为数字
$.inArray
使用严格相等运算符(==)比较元素。也就是说,'26'==26
返回false,因为没有发生类型强制
从文档中:
每次尝试都会将字符串转换为JavaScript值
(这包括布尔、数字、对象、数组和null)。价值
仅当这样做不会更改值的
代表性。例如,“1E02”和“100.000”等同于
数字(数值100),但转换它们会改变
表示,以便将它们保留为字符串。字符串值为“10”