2014-03-26 113 views
0

任何人都可以告訴我我在做什麼在這裏? 我有點新的JavaScript,我不能讓此功能工作,我想要的方式.. 基本上,如果我在ABCJ在NUMBER1字段中鍵入,我想在ansarea顯示123X函數與if語句 - javascript

<!DOCTYPE html> 
<html> 
<body> 

<script> 
function convert(number1) 
{ 
    for(var i=0;i<number1.length();i++) 
     { 
     if(number1[i]=='A') 
     { 
      document.getElementById("ansarea").innerHTML="1"; 
     } 
     else if(number1[i]=='B') 
      { 
      document.getElementById("ansarea").innerHTML="2"; 
     } 
     else if(number1[i]=='C') 
     { 
      document.getElementById("ansarea").innerHTML="3"; 
     } 
     else if(number1[i]=='D') 
     { 
      document.getElementById("ansarea").innerHTML="4"; 
     } 
     else if(number1[i]=='E') 
     { 
      document.getElementById("ansarea").innerHTML="5"; 
     } 
     else 
      { 
      document.getElementById("ansarea").innerHTML="x"; 
     } 
    } 
} 

</script> 

<form>Enter here : <input type="text" name="number1"><br></form> 

<button type="button" onclick="convert("number1")">Convert</button> 

<div id="ansarea"><input type="text" name = "ans"></div> 

</body> 

</html> 
+1

使用的switch-case語句! – Smokie

+0

正在使用,如果在這種情況下else語句錯誤? – psj01

+0

我只是試圖學習..這是不是爲我正在工作的任何項目..只是想學習如何編寫和調用基本功能的JavaScript :) – psj01

回答

0

innerHTML - 它是元素中包含html的屬性。每次你完全重寫它。 試試這個: document.getElementById("ansarea").innerHTML+="1"; document.getElementById("ansarea").innerHTML+="2"; // etc 通過+=(而不是=)你會連接舊值與新。

而且你必須改變你的函數調用。 試試這個(我沒有測試它):

function convert(selector) { 
    var dataFromInput = document.querySelector(selector); 
    var dataLength = dataFromInput.length(); 

    var ansarea = document.getElementById("ansarea"); 

    for(var i = 0; i < dataLength; i++) { 

     switch (dataFromInput[i]) { 
      case 'A': 
       ansarea.innerHTML += '1'; 
       break; 
      case 'B': 
       ansarea.innerHTML += '2'; 
       break; 
      case 'C': 
       ansarea.innerHTML += '3'; 
       break; 
      case 'D': 
       ansarea.innerHTML += '4'; 
       break; 
      case 'E': 
       ansarea.innerHTML += '5'; 
       break; 
      default: 
       ansarea.innerHTML += 'x'; 
     } 
    } 
} 

,並添加ID輸入:

<form>Enter here : <input type="text" name="number1" id="number1"><br></form> <button type="button" onclick="convert('#number1')">Convert</button>

+0

試過,但它仍然沒有寫入框中的答案,就像我想要的那樣..我是否正確調用該函數? – psj01

+0

@ ps01 no。您試圖將其稱爲: onclick =「convert(」number1「)」 這是不正確的。首先你使用了相同的數據。嘗試單個問題: onclick =「convert('ABCJ')」 但是如果你想從輸入中獲取價值,你應該首先從輸入中得到它。 –

+0

輸入被稱爲number1 //

在這裏輸入:
psj01

1

這會讓你的代碼工作...

<!DOCTYPE html> 
<html> 
<body> 

<script> 
function convert() { 
    var valu = document.getElementById("some").value; 
    document.getElementById("ansarea").innerHTML = ""; 
    for (var i = 0; i < valu.length; i++) { 
     if (valu[i] == 'A') { 
      document.getElementById("ansarea").innerHTML += "1"; 
     } else if (valu[i] == 'B') { 
      document.getElementById("ansarea").innerHTML += "2"; 
     } else if (valu[i] == 'C') { 
      document.getElementById("ansarea").innerHTML += "3"; 
     } else if (valu[i] == 'D') { 
      document.getElementById("ansarea").innerHTML += "4"; 
     } else if (valu[i] == 'E') { 
      document.getElementById("ansarea").innerHTML += "5"; 
     } else { 
      document.getElementById("ansarea").innerHTML += "x"; 
     } 
    } 
} 
</script> 

<form>Enter here : <input type="text" name="number1" id="some"><br> 

<button type="button" onclick="convert()">Convert</button> 

<div id="ansarea"></div> 
</form> 

</body> 

</html> 

enter image description here

您不需要將值傳遞給convert(),因爲你是從輸入字段所獲得的價值,你不需要其他輸入字段,因爲你把文字在一個div ..

1

這是另一個工作示例:

<!DOCTYPE html> 
<head> 
<script> 
function convert() 
{ 

    var number1 = document.getElementById('textbox_id').value; 

    for(var i=0;i<number1.length;i++) 
     { 
     if(number1.charAt(i)=='A') 
     { 
      document.getElementById("ansarea").innerHTML +="1"; 
     } 
     else if(number1.charAt(i)=='B') 
      { 
      document.getElementById("ansarea").innerHTML +="2"; 
     } 
     else if(number1.charAt(i)=='C') 
     { 
      document.getElementById("ansarea").innerHTML +="3"; 
     } 
     else if(number1.charAt(i)=='D') 
     { 
      document.getElementById("ansarea").innerHTML +="4"; 
     } 
     else if(number1.charAt(i)=='E') 
     { 
      document.getElementById("ansarea").innerHTML +="5"; 
     } 
     else 
      { 
      document.getElementById("ansarea").innerHTML +="x"; 
     } 
    } 
} 

</script> 
</head> 
<body> 
Enter here : <input type="text" name="number1" id='textbox_id'> 
</br> 

<button type="button" onclick="convert()">Convert</button> 

<div id="ansarea"></div> 

</body> 

</html> 

幾件事情注意這裏:

  • 您可以從功能convert()
  • 內搭的價值不需要之後的第二onpening <html>標籤
  • 這是最好不要跳過<head>標籤
  • 專門爲這一任務就不需要<form>所以我刪除它,但你可以添加,如果你計劃提交到一些其他方法或東西..
1

首先,歡迎使用javascript!因爲你開始了,所以開始的一條好的經驗法則是找到重複的方法。

這裏是你如何可以執行完全一樣的東西在使用地圖其他答案又如:

// let's map all the characters you need against some digits 
// this will make it super easy to add, remove or swap things around. 
var map = { A: '1', B: '2', C: '3', D: '4', E: 5 }; 

// for example, map['A'] will now have the value of '1' 

// we can store the output element once for good, 
// so you don't have to look it up over and over again. 
var outputElement = document.getElementById('ansarea'); 

function convert(inputString) { 

    // the result variable will temporary store the result, so let's start empty 
    var result = ""; 

    for (var i = 0; i < inputString.length; i ++) { 

     // grab the current character so we don't have to look it up twice 
     var char = inputString[i]; 

     if (typeof map[char] !== 'undefined') { 

      // cool, the character existed within the map. 
      // We can append its value to the result: 
      result += map[char]; 

     } else { 

      // ... if not add 'x' 
      result += 'x'; 
     } 
    } 
    // and finally, populate the HTML with the result 
    outputElement.innerHTML = result; 
}