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

时间:2017-02-14 10:59:42

标签: jquery nan custom-data-attribute

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

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

但变量total_cost会返回NaN

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

UPDATE ...

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

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

使用范围滑块设置var totalSeatsCost

4 个答案:

答案 0 :(得分:2)

使用attr代替data

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

答案 1 :(得分:0)

如果放置在中的值为total_costNaN将仅为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




答案 2 :(得分:0)

API reference for .data(key)说明了这一点(强调我的):

  

返回指定数据存储区中第一个元素的值   jQuery集合,由数据(名称,值)或HTML5数据设置 - *   属性。

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

唯一的解决方案是不首先插入NaN - 一旦你无法恢复原始值。你怎么样?

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

答案 3 :(得分:0)

数据的返回值被视为字符串。我想你正试图根据这个价值进行一些学习。

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

+total_cost 

Number(total_cost)