2012-07-30 28 views
0

這篇文章是我已經做了有關JS跨度值的以前的延續。 在下面這行代碼中,當我在Chrome中打開我的Javascript控制檯時,我看到了標籤關閉附近的值。可以說他們分別是20和10。但是這些值不在實際的html代碼中(如下所示)。在我的javascript函數中,我只是試圖「提取」span值,將它們分開並返回一個值。作爲我的結果,我不斷得到'NaN'。我是否需要在某處爲某個函數指定某個函數來返回數值?作爲函數結果NaN的問題,而不是必要的整數

注:值從一個歷史學家讀, 'P1'

<span id ="LineSpeedGE" class='PIData' data-tag='G2LineSpeedGE'></span> (value of 20) 

<span id ="AimPsSpd" class='PIData' data-tag='G2rCurrentAimPsSpd'></span> (value of 10) 

JS功能:

function divide(n1,n2) 
{ ans = n1/n2; 
    document.write(" "+ans+"<BR>");  
    return ans; 
} 

var a = parseInt($("LineSpeedGE.PIData[data-tag]").data("tag"), 10); 
var b = parseInt($("AimPsSpd.PIData[data-tag]").data("tag"), 10); 

divide (a, b); 

我得到NaN的結果,而不是預期的 '2'。如果我將常規整數插入變量中,實際的分割就可以了。我似乎無法「捕捉」在我的html代碼中看不到的span的實際值。我懷疑數據類型是衝突的?

這是我原來的帖子的鏈接:Storing a span value into a javascript variable供參考,如果這似乎令人費解。

+3

'data-tag'不是可解析的數字..你也在使用錯誤的選擇器 – Esailija 2012-07-30 18:08:20

+0

'G2LineSpeedGE'和'G2rCurrentAimPsSpd'不是數字。 – 2012-07-30 18:09:13

+0

存儲的實際值在哪裏?你的'數據標籤'值顯然不是數字。 – 2012-07-30 18:14:58

回答

2

G2LineSpeedGE不是一個數字,也不是G2rCurrentAimPsSpd是。

<span id ="LineSpeedGE" class='PIData' data-tag='42'></span>將工作。

+0

這是行不通的,因爲選擇器是錯的。 – epascarello 2012-07-30 18:18:26

1

首先,您的選擇器是錯誤的。

$("LineSpeedGE.PIData[data-tag]") 

這看起來名爲LineSpeedGE<LineSpeedGE/>)元素。你可能想:

$("#LineSpeedGE.PIData[data-tag]") 

#使得搜索ID(如果你通過ID進行搜索時,.PIData[data-tag]是沒有必要的)。

此外,data-tag值不是數字。他們是G2LineSpeedGEG2rCurrentAimPsSpd,那些不是數字。

1

你的選擇器是錯誤的,所以你沒有得到任何返回的元素。

$("LineSpeedGE.PIData[data-tag]") 

它缺少#,所以你正在尋找一個名爲LineSpeedGE編號的元素,沒有。

$("#LineSpeedGE.PIData[data-tag]") 

同樣的事情applys到AimPsSpd。缺少#

另外G2LineSpeedGE是一個字符串,而不是一個數字,因此當parseInt運行時也會導致NAN。

相關問題