2015-07-21 69 views
0

我有这样的字的基础:用于翻译的单词两列一个简单的JavaScript

var words = [ 
["english_word1","german_word1"], 
["english_word2","german_word2"], 
["english_word3","german_word3"] 
]; 

,我需要一个简单的JavaScript在两个方向上平移的话,即英语 - >德语和英语 - >英。喜欢的东西:

<textarea id="source" onkeyup="translate();"></textarea> 
<div id="result"></div> 

<script type="text/javascript"> 
function translate() { 
var source = document.getElementById('source').value; 
... ??? 
document.getElementById('result').innerHTML = result; 
} 
</script> 

在不改变基础

回答

1

你可以试试这个代码

<html> 
    <head> 
     <script> 

      var words = [ 
       ["english_word1","german_word1"], 
       ["english_word2","german_word2"], 
       ["english_word3","german_word3"] 
      ]; 

      function getlang(){ 
       var select = document.getElementById("language"); 
       return select.options[select.selectedIndex].value*1; 
      } 
      function search(keyword){ 
       for(var x = 0; x < words.length; x++){ 
        var lang = getlang() 
        if(words[x][lang] == keyword) return words[x][(lang+1) % 2] 
       } 
       return false 
      } 
      function update(e){ 
       var source = document.getElementById('source').value; 
       result = search(source); 
       if(result !== false) 
        document.getElementById('result').innerHTML = result; 
      } 
      document.addEventListener("input",function(e){ 
       if(e.target.id == "source"){ 
        update() 
       } 
      }); 
      document.addEventListener("change",function(e){ 
       if(e.target.id == "language"){ 
        update() 
       } 
      }); 

     </script> 
    </head> 
    <body> 
     <textarea id = "source"></textarea> 
     <select id = "language"> 
      <option value = 0>English -> German</option> 
      <option value = 1>German -> English</option> 
     </select> 
     <div id = "result"></div> 
    </body> 
</html> 
+0

当然,我更新了最后一篇 – Chop

+0

有一些理由使用当前数据结构。对于第一种方式,我应该如何调用javascript的函数:例如''? – stckvrw

+0

oninput event would be better: Chop