Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5数据被读取为数字而不是字符串?_Javascript_Jquery_Html - Fatal编程技术网

Javascript HTML5数据被读取为数字而不是字符串?

Javascript HTML5数据被读取为数字而不是字符串?,javascript,jquery,html,Javascript,Jquery,Html,我有以下HTML: <tr id="row_1" data-rk="02000008" data-pk="0001I"> 然后我使用jQuery阅读以下内容: var pk = $("tr[id='row_" + row + "']").data('pk') var rk = $("tr[id='row_" + row + "']").data('rk') 然而,当我检查javascript中的值时,firebug调试器会显示这一点。它们也是后来在Ajax调用中发送到我的C代码的

我有以下HTML:

<tr id="row_1" data-rk="02000008" data-pk="0001I">
然后我使用jQuery阅读以下内容:

var pk = $("tr[id='row_" + row + "']").data('pk')
var rk = $("tr[id='row_" + row + "']").data('rk')
然而,当我检查javascript中的值时,firebug调试器会显示这一点。它们也是后来在Ajax调用中发送到我的C代码的相同值

pk shows as "0001I"
rk shows as 2000008
有人能解释一下吗?rk和pk的编码方式相同,都有一个或多个前导零,但一个作为字符串返回,另一个作为数字返回。

请尝试:

var pk = $("tr[id='row_" + row + "']").attr('data-pk');
尝试:

这是:

每次尝试都会将字符串转换为JavaScript值(包括布尔值、数字、对象、数组和null),否则它将保留为字符串。要以字符串形式检索值的属性而不进行任何转换,请使用方法

您必须使用的是:

var pk = $("tr[id='row_" + row + "']").attr('data-pk')
var rk = $("tr[id='row_" + row + "']").attr('data-rk')
这是:

每次尝试都会将字符串转换为JavaScript值(包括布尔值、数字、对象、数组和null),否则它将保留为字符串。要以字符串形式检索值的属性而不进行任何转换,请使用方法

您必须使用的是:

var pk = $("tr[id='row_" + row + "']").attr('data-pk')
var rk = $("tr[id='row_" + row + "']").attr('data-rk')

Javascript自动剖分,因此
“0001I”
中的尾随“I”会导致Javascript将其解释为字符串Javascript自动剖分,因此
“0001I”
中的尾随“I”会导致Javascript将其解释为字符串既然jQuery正在弄乱您的数据,您可以执行以下操作:

var rk = document.getElementById('row_' + row]).getAttribute('data-rk'); 

而且保证您有一个字符串。

因为jQuery会弄乱您的数据,您可以:

var rk = document.getElementById('row_' + row]).getAttribute('data-rk'); 

并且保证您有一个字符串。

HTML不提供固定的变量类型。因此jQuery“猜测”它与内容有关的内容。尝试
alert(typeof rk)
看看它是否真的是一个数字。属性应该始终是字符串,如果jQuery将其更改为数字,那么这是一件不好的事情。来自:“每次尝试都将字符串转换为JavaScript值(包括布尔值、数字、对象、数组和null),否则它将作为字符串保留。”因此,design.HTML不提供固定的变量类型。因此jQuery“猜测”它与内容有关的内容。尝试
alert(typeof rk)
看看它是否真的是一个数字。属性应该始终是字符串,如果jQuery将其更改为数字,那么这是一件不好的事情。来自:“每次尝试都会将字符串转换为JavaScript值(这包括布尔值、数字、对象、数组和null),否则它将保留为字符串。”这是出于设计。谢谢。其他答案也是正确的,但是你关于尾随I的观点非常好,并解释了。不是javascript将其转换为数字,而是jQuery试图猜测开发人员。谢谢。其他答案也是正确的,但你关于尾随I的观点非常好,并解释了这一点。不是javascript将其转换为数字,而是jQuery试图猜测开发人员。