将变量设置为数据属性值而不是 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
是使用范围滑块设置的。
如果您放入其中的值是NaN
,total_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)
数据属性 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
是使用范围滑块设置的。
如果您放入其中的值是NaN
,total_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)