javascript中变量范围的问题

好吧,我当然很困惑,为什么这不会在textarea返回6。它没有返回任何东西。 我认为它与js范围有关,但我无法弄明白。
<body>

    <script language="Javascript">
    var broj = 5;  

    function Inci(){
    var broj++;
    document.frmMain.VrsteHolder.value = broj;
    }

    </script>

    <form name="frmMain" method="get" action="script.php">

    <textarea name="VrsteHolder" rows="4"> </textarea>
    <input type="button" value="Dodaj porudzbinu" name="buttonDodaj" onClick="Inci();"/> 

    </form>

</body>
    
已邀请:
摆脱
Inci
函数内的
var
关键字。
var
重新声明当前范围内的变量,因此每次调用
Inci
时都会重新声明
broj
。 这将是正确的方法:
var broj = 5;  

function Inci(){
   document.frmMain.VrsteHolder.value = ++broj;
}
    
因为
var
关键字定义了变量。从你的功能中删除
var
function Inci(){
    broj++;
    document.frmMain.VrsteHolder.value = broj;
    }
    
问题是
var
,因为另一个回答细节,重新声明你的变量,或试图更确切地说,并且由于组合而实际抛出语法错误。 顺便说一句,虽然我看到的更少:不要忘记你可以通过在变量之前使用++(增量运算符)来增加并立即获得结果,例如:
function Inci(){
  document.frmMain.VrsteHolder.value = ++broj;
}
你可以在这里测试那个版本。     

要回复问题请先登录注册