我想通過單擊表格標題對HTML中的表格進行排序。對字符串進行排序很合適,但比較數字時,它會評估「10」<「2」。顯然,我正在比較字符串,但我無法從我的表格單元格中獲取數字。這裏是發生了什麼事的工作示例:無法在JavaScript中將輸入文本轉換爲int
<script type="text/javascript" >
function sortBy() {
var table = document.getElementById("table");
var rows = table.getElementsByTagName("tr");
var number = rows[1].getElementsByTagName("td")[0].innerHTML;
document.write(number); // This should be printing "7".
}
</script>
<?php
echo "<table id='table'>
<thead><tr><th onclick='sortBy()'>CLICK ME</th></thead></tr>
<tbody><td><input readonly value='7'></td></tbody>";
?>
在這個例子中,我試圖讓整數7
。我試過parseInt(number)
,但是評估結果爲NaN
,所以我試着寫出number
是什麼,它打印的是文本字段而不是文本字段的內容。我已通過打印number.length
進行了檢查,並且我得到了29
,而不是1
。我試過number.value
但是那是undefined
。
我試過用.value
代替.innerHTML
,但那也是undefined
。
有什麼辦法可以將它轉換成數字嗎?或者至少剝離html標籤等?我意識到我可以使用字符串來構建我自己的比較邏輯,並且它的長度(如果(A.length> B.length){A的更大} else {與普通的}比較),但是這很混亂,並且不會幫助我理解這個問題。
看看https://stackoverflow.com/questions/14617221/need-to-convert-result-of-innerhtml-to-number-on-javascript –
你應該選擇'' ,**不** **''。這就是爲什麼你得到'NaN'。你需要追加另一個'getElementsByTagName(..)[0]'來獲得輸入,然後你得到它的'value' attr。 – RompePC
@RompePC您應該將其作爲答案發布,而不是發表評論。 – krillgar