2011-11-24 67 views
0

我有这样的问题。这不起作用。但是我需要value =“”在goDo函数被调用之前为空,并且在goDo函数被调用后被改变。JS变量的形式值

<script> 
    function goDo(num) { 
    if (num == 1) var goID = 10; 
    else if (num == 2) var goID = 20; 
    var findElement = document.getElementById('1'); 
    findElement.innerHTML.value=goID; 
    } 
</script> 

<input type="text" value="" id="1"> 

回答

1
<input type="text" value="" id="foobar"> 

<script> 
    function goDo(num) { 
    var goID, element; 
    if (num === 1 || num === 2){ 
     goID = num * 10; 
    } 
    element = document.getElementById('foobar'); 
    element.value = goID; 
    } 
</script> 
  • innerHTML返回一个字符串,不应该被用于使用
  • ===而不是HTML ==
  • ID不能以数字开头
  • JavaScript的应该是在单独的文件和权利之前包括</body>
+0

这是我想要的...非常感谢 – pzztzz

1

尝试

findElement.setAttribute('value', goID); 

顺便说一句,而不是使用if语句,你可以做到这一点分配GOID:

var goID = { 1: 10, 2: 20 }[num]; 

在这里,你正在创建一个临时散图,那么你使用num作为获得你想要的价值的关键。这是一种更快捷,更习惯的方式来做你正在试图用if语句做的事情。

+0

我不明白第二个代码...顺便说一句:goID也可以是文本。 – pzztzz

+0

我试着用你的第一个代码......它工作正常。非常感谢你 – pzztzz

1

嗯,我认为有一些东西荣与你的代码。你可以这样尝试:

function goDo(num) { 
      var goID; 
     if (num == 1) {goID = 10;} 
     else if (num == 2){ goID = 20;} 
     var findElement = document.getElementById('1'); 

     findElement.value=goID; 
    } 

goDo(1); 
+0

非常感谢...它帮助。 – pzztzz