我正在使用一个基本标识符,该标识符使用带有附加字母数字部分的unix时间戳。
直到最近,一切都运行良好 - 数据库中的一些标识符无法更新。
我注意到失败的id有所有数字和字母E.
EG 1386953039E87,转录为1.386953039e + 96
我远不是一名数学家,但觉得原来的价值被视为一个数字。我尝试过使用toString()函数,但这对我没用。
答案 0 :(得分:2)
调用toString为时已晚,因为输出1386953039E87已将其创建为数字(或JavaScript对数字的最佳猜测)。
尝试修改服务器端代码,将其环绕在引号中,以便将其创建为字符串而不是数字。
这也可能是使用jQuery的data()函数的副作用。他们在their api docs中提到它并没有改变它们的价值,但似乎你的情况证明不是这样:
每次尝试都将字符串转换为JavaScript值 (这包括布尔值,数字,对象,数组和null)。一个值 如果这样做不会更改值,则仅转换为数字 表示。例如,“1E02”和“100.000”等同于 数字(数值100)但转换它们会改变它们的数字 表示所以它们被保留为字符串。字符串值“100”是 转换为数字100。
当data属性是一个对象(以'{')或数组开头时 (以'['开头)然后jQuery.parseJSON用于解析字符串; 它必须遵循有效的JSON语法,包括引用的属性名称。如果 该值不能作为JavaScript值进行解析,而是保留为 字符串。
要将值的属性检索为字符串而不进行任何尝试 转换它,使用attr()方法。
所以你似乎需要使用attr()而不是data()来实现这个