2017-02-14 140 views
0

數據屬性date-total-cost的值爲100將變量設置爲數據屬性值而不是NaN

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使用範圍滑塊設置。

+2

@vijayP通常是當有)'數據()'ATTR之間'混淆('不論那個問題請注意,在這種情況下,屬性的第一部分是'date',而不是'data' –

+0

@RoryMcCrossan - 是的。沒有正確閱讀它..! – vijayP

+0

jQuery'.data'返回數據與前綴'data-'存儲相同的方法或屬性...爲您的具體情況使用'.attr'來代替,並且不要糾正錯字 –

回答

2

使用attr而不是data

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

total_cost只會NaN,如果你在它到位值NaN。如果你期望值被填充,那麼值得研究設置值的代碼是值得的。

這就是說,你可以使用的Javascript falsy自然強迫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

0

API reference for .data(key)說,這(重點mine):

返回中指定數據存儲區中第一個元素的值由數據(名稱,值)或HTML5數據 - * 屬性設置的jQuery集合,

換句話說,它不會操縱該值將其轉換爲數字。

唯一的解決方案是首先不要插入NaN - 一旦出現,您根本無法恢復原始值。你怎麼能?

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

數據的返回值被視爲字符串。我認爲你正在嘗試根據這個價值做一些調整。

嘗試返回數據轉換爲數字通過:

+total_cost 

Number(total_cost) 
相關問題