Javascript Jquery-在拆分之前转换类型

Javascript Jquery-在拆分之前转换类型,javascript,jquery,variables,types,split,Javascript,Jquery,Variables,Types,Split,我有以下html代码片段: <div id="container" data-id="20.20"></div> 所以我的情况是: 我需要变量“foo”是字符串,因为我想使用Jquery split函数 我的问题是: 为什么“foo”首先作为“number”返回,我认为它直接保存为“string” 我的方法是更改变量类型的好方法还是应该使用其他方法 尝试猜测数据属性的数据类型: 每次尝试都会将字符串转换为JavaScript值 (这包括布尔、数字、对象、数组和null)

我有以下html代码片段:

<div id="container" data-id="20.20"></div>
所以我的情况是:

我需要变量“foo”是字符串,因为我想使用Jquery split函数

我的问题是:

  • 为什么“foo”首先作为“number”返回,我认为它直接保存为“string”

  • 我的方法是更改变量类型的好方法还是应该使用其他方法

  • 尝试猜测数据属性的数据类型:

    每次尝试都会将字符串转换为JavaScript值 (这包括布尔、数字、对象、数组和null)。价值 仅当这样做不会更改值的 代表性。例如,“1E02”和“100.000”等同于 数字(数值100),但转换它们会改变 表示,以便将它们保留为字符串。字符串值“100”为 转换成数字100

    [……]

    以字符串形式检索值的属性,而不尝试 转换它,使用attr()方法

    请注意,根据上述规则,值
    20.2
    将被转换为数字,但
    20.20
    将不会被转换

    话虽如此,使用
    .attr()
    获取值而不进行转换。或者,使用以下任一方法将数字(或几乎任何对象)转换为字符串:

    expr.toString()
    String(expr)
    "" + expr
    

    要分隔小数部分和整数部分,可以使用按位
    |
    删除小数,强制将数字设置为整数。然后从原始值中减去它得到小数:

    var foo = $(this).data("id"); //20.20
    var integer = foo | 0;        //20
    var decimal = foo - integer;  //0.20
    

    对我来说,它最初以字符串的形式返回:

    也许您正在使用数字设置数据?例如:

    $el.data('id', 20.20);
    
    如果是这样,请将其更改为设置一个字符串,也许它将作为字符串返回:

    $el.data('id', '20.20');
    

    如果您想要未解析的值,请考虑使用.Atft(‘DATA ID’)。您给出了最佳答案。谢谢
    $el.data('id', '20.20');