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

Set variable to data attribute value instead of NaN

数据属性 date-total-cost 的值为 100

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

但是变量total_cost returns NaN

如何将变量设置为 return 数据字段的编号?

更新...

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

function Cost() { $('.output--lisence-cost').attr('data-total-cost',totalSeatsCost); }

变量 totalSeatsCost 是使用范围滑块设置的。

如果您放入其中的值是NaNtotal_cost只会是NaN。如果您希望填充该值,则值得研究设置该值的代码。

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

var total_cost = NaN; // $('.output--lisence-cost').data('date-total-cost');
console.log(total_cost || 100); // returns '100' if value was undefined/false/NaN

API reference for .data(key) 是这样说的(强调我的):

Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.

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

唯一的解决办法是一开始就不要插入 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');

数据的return值被视为字符串。我认为您正在尝试根据此值进行一些计算。

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

+total_cost 

Number(total_cost)