2012-11-20 95 views
0

我在這裏有一個小問題。將float參數從html傳遞到javascript

我想要做的是將一些參數從html傳遞給javascript。下面是代碼:

HTML:

<div id="percentage">52.338</div> 

JAVASCRIPT:

var pctg = document.getElementById("percentage"); 
alert(pctg); 

但它不能很好地工作。你能告訴我如何解決它嗎?我已經嘗試過'parseFloat'和一些相關的東西,但是還不能解決它... Thx。

+0

'parseFloat('52 0.338 ')=== 52.338 &&號('52 0.338')=== 52.338'。你只是忘了用你最喜歡的方式來獲取內容; '.textContent','.innerText'或'.innerHTML'。還要記住_id_應該是唯一的;如果你想這樣做多次把一些數字放在最後或者其他的東西上。 –

回答

4

你在找什麼是元素的文本內容而不是元素本身。有些瀏覽器(當然舊IE)的使用innerText代替textContent所以這是一個好主意,使用這兩種屬性:

var elem = document.getElementById("percentage"); 
var text = elem.textContent || elem.innerText; 

如果你真的想要一個號碼,而不是隻是一個字符串使用parseFloat()的字符串。


取決於你正在做它可能是更明智的存儲在data-屬性的值,雖然什麼。然後,您可以簡單地使用.getAttribute('data-whatever')來訪問它,而不必處理獲取元素的文本內容。如果你使用jQuery,它會變得更好,因爲你可以使用.data('whatever')這將已經返回一個數字。現代瀏覽器還支持通過dataset屬性直接訪問數據屬性;但你可能不想使用它,因爲它會破壞舊的瀏覽器。

2

pctg將包含一個元素,而不是元素的文本。嘗試alert(pctg.innerHTML)

如果您需要浮點,則可以使用parseFloat(pctg.innerHTML)

1

你可以得到元素的innerText,然後分析,像這樣的值:

var pctg = document.getElementById("percentage").innerText; 
var floatNumber = parseFloat(pctg);