2012-06-29 52 views
1

我正在嘗試使用HTML製作BMI計算器。輸入來自文本字段。我正在用Javascript函數進行一些計算。我想在這樣一個跨度的計算值:如何獲得跨度標記中的值從JS

<span id="" class="">Your Calculation Results is = </span> 
<span id="" class=""> "" I want the result here "" </span> 

============================== ====================================== 編輯:我問的部分

<script language="javascript"> 
var bmi = document.getElementById("ID_bmiResult2").innerHTML; 
bmi.value = weight/(heightInMeter * heightInMeter); 
</script> 

<body> 
<span id="ID_bmiResult2"> </span> 
</body> 

我不知道如何使它...

+0

@MilkyWayJoe :: – Mahmoud

回答

10

編輯:正如有人指出,FF不喜歡innerText,所以我更換到innerHTML在這種特定情況下不不會改變腳本的整體功能。

你可以得到第二span和直接傳遞價值innerHTML這樣的:

document.getElementsByTagName('span')[1].innerHTML= 'the result'; 

注意:考慮使用和idclass所以你可以找到你需要改變,而不是確切元素檢索該類型的幾個元素(在這種情況下爲span)。 如果你有一個id,這將是這樣的:

document.getElementById('the id goes here').innerHTML= 'the result'; 

EDIT2:此修改後作出OP改變了他的問題 它得到了真正的困惑,現在我看到你的代碼。 我寫了this fiddle,所以你可以看到它的工作

+0

將取代已存在的範圍內的文本,不添加到它。 – jackwanders

+0

@jackwanders:它看起來並不像span包含任何其他內容。 –

+0

@FelixKling我的錯誤,我誤解了他的代碼;他以爲他想在第一個跨度內獲得結果。 – jackwanders

0

你試過Jquery

$("span").next().text("Your Result"); 

OR 

$("span").eq(1).text("Your Result"); 

要做一個更好的代碼,請在組件中添加一個ID。

+2

jQuery是一個偉大的圖書館,但它是完全這項任務是不必要的,除非OP已經在使用它。請不要在未提及或標記jQuery的問題上回答形式jQuery-只回答。 (如果jQuery擁有完整的答案,只要它們也包含完整的非jQuery答案,或者手頭的任務非常難以在沒有使用JavaScript庫的情況下完成)。 – apsillers

0

你可以使用document.writeln來得到你的結果。看看http://jsfiddle.net/CmVww/上的小提琴來玩吧。以下是結果。

<div id="start"> 
<span id="one" class="sText">Your Calculation Results is = </span> 
<span id="two" class="result"> 
<script type="text/javascript"> 
var tst = 'I want the result here'; 
    document.writeln(tst); 
</script> 
</span> 
+0

'document.write'將*清除頁面的全部內容*並將其替換爲'var'的值。 OP要寫入特定的元素。 – apsillers

+0

你至少試過運行這段代碼嗎? – MilkyWayJoe

+0

這是不是寫入特定元素?我讀錯了嗎? –

2

如果你有一個像calcResult一個變量,你可以這樣做:

document.getElementById('spanId').innerHTML += calcResult; 

當然,這隻能使用一次。如果再次執行此操作,則會在該範圍內得到兩個結果。如果你希望能夠改變的結果,如果表單域的變化,我想嘗試:

<span id="calc">Your calculation result = <span></span></span> 

var result = 12; 
document.getElementById('calc').getElementsByTagName('span')[0].innerHTML = result; 
+0

對您的問題進行二讀時,此答案解決您的問題的一個稍微不同的版本。無論如何,我會放棄它。 – jackwanders

0
var bmi = weight/(heightInMeter * heightInMeter); 
document.getElementById('ID_bmiResult2').innerHTML= bmi; 
0

JavaScript中計算出BMI

<script language="javascript"> 

    var Height = 0; 
    var Weight = 0; 
    var BMI = 0; 
    function getTotalBMIScore() { 

     Height = document.getElementById('MainContent_txtPDHeight').value; 
     //alert(Height + 'Height'); 
     Weight = document.getElementById('MainContent_txtPDWeight').value; 
     //alert(Weight + 'Weight') 
     BMI = Weight/(Height * Height); 

     BMI = BMI.toFixed(2); 

     //alert(BMI + 'BMI'); 
     document.getElementById('BMIScore').innerText = BMI; 


    } 

</script> 

//函數結束

//如果你從文本框中取出你應該使用這個 身高(米):

<asp:TextBox ID="txtPDHeight" onchange ="getTotalBMIScore()" onKeyUp ="getTotalBMIScore()" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" runat="server"></asp:TextBox> 
<span> 

重量(公斤):

<asp:TextBox ID="txtPDWeight" onchange = "getTotalBMIScore()" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" onKeyUp ="getTotalBMIScore()" runat="server"></asp:TextBox> 

//如果你想在跨度用來顯示此BMI:

<span id="BMIScore"></span></span><br />