Jquery 将变量设置为数据属性值而不是NaN

Jquery 将变量设置为数据属性值而不是NaN,jquery,nan,custom-data-attribute,Jquery,Nan,Custom Data Attribute,数据属性日期总成本的值为100 var total_cost = $('.output--lisence-cost').data('date-total-cost'); 但是变量total_cost返回NaN 如何设置变量以返回数据字段的编号 更新… 我还在下面的函数中设置数据属性的值 功能成本(){ $('.output--lisence cost').attr('data-total-cost',totalSeatsCost'); } varTotalSeatCost是使用范围滑块设置的。

数据属性
日期总成本
的值为
100

var total_cost = $('.output--lisence-cost').data('date-total-cost');
但是变量
total_cost
返回
NaN

如何设置变量以返回数据字段的编号

更新…

我还在下面的函数中设置数据属性的值

功能成本(){
$('.output--lisence cost').attr('data-total-cost',totalSeatsCost');
}


var
TotalSeatCost
是使用范围滑块设置的。

如果您在其中输入的值为
NaN
,则
总成本将仅为
NaN
。如果您希望填充该值,那么值得研究设置该值的代码

也就是说,您可以使用Javascripts的falsy特性,通过使用逻辑or运算符将
NaN
强制为默认值,如下所示:

var总成本=NaN;//$(“.output--lisence cost”).data('date-total-cost');

console.log(总成本| | | 100);//如果值未定义/false/NaN
则返回“100”
如果您在其中放置的值为
NaN
,则
总成本将仅为
NaN
。如果您希望填充该值,那么值得研究设置该值的代码

也就是说,您可以使用Javascripts的falsy特性,通过使用逻辑or运算符将
NaN
强制为默认值,如下所示:

var总成本=NaN;//$(“.output--lisence cost”).data('date-total-cost');
console.log(总成本| | | 100);//如果值未定义/false/NaN
则返回“100”(强调):

在指定的数据存储中返回 jQuery集合,由数据(名称、值)或HTML5数据集设置-* 属性

换句话说,它不会操纵值以将其转换为数字

唯一的解决方案是不要在第一个位置插入
NaN
,一旦插入,您就无法恢复原始值。你怎么能

> console.log(Number('Foo'));
NaN
> console.log(Number('Bar'));
NaN
> console.log(Number('Apples!'));
NaN
这句话(我的重点是):

在指定的数据存储中返回 jQuery集合,由数据(名称、值)或HTML5数据集设置-* 属性

换句话说,它不会操纵值以将其转换为数字

唯一的解决方案是不要在第一个位置插入
NaN
,一旦插入,您就无法恢复原始值。你怎么能

> console.log(Number('Foo'));
NaN
> console.log(Number('Bar'));
NaN
> console.log(Number('Apples!'));
NaN

使用
attr
而不是
data

var total_cost = $('.output--lisence-cost').attr('date-total-cost');

使用
attr
而不是
data

var total_cost = $('.output--lisence-cost').attr('date-total-cost');

数据的返回值被视为字符串。我想你是想根据这个值来做一些计算

尝试通过以下方式将返回数据转换为数字:

+total_cost 


数据的返回值被视为字符串。我想你是想根据这个值来做一些计算

尝试通过以下方式将返回数据转换为数字:

+total_cost 


@vijayP通常情况下,当
attr()
data()
之间存在混淆时,这就是问题所在。但是请注意,在这种情况下,属性的第一部分是
date
,而不是
data
@rorymcrossan-是的..没有正确读取。。!jQuery
.data
返回以相同方法或属性存储的数据,前缀为
data-
。。。对于您的具体情况,请改用
.attr
,不要忘记修复打字错误感谢您注意到打字错误@vijay:)我返回的输出现在是
0
。我已经用更多信息更新了我的原始帖子。@vijayP通常,当
attr()
data()
之间存在混淆时,这就是问题所在。但是请注意,在这种情况下,属性的第一部分是
date
,而不是
data
@RoryMcCrossan-是的..没有正确阅读。。!jQuery
.data
返回以相同方法或属性存储的数据,前缀为
data-
。。。对于您的具体情况,请改用
.attr
,不要忘记修复打字错误感谢您注意到打字错误@vijay:)我返回的输出现在是
0
。我用更多的信息更新了我原来的帖子。