无法获取文档.写入以显示更新的变量

Can't get document.write to display updated variable

本文关键字:显示 更新 变量 获取 文档      更新时间:2023-09-26

又是一个新手问题,这是源于对JS非常肤浅的理解。

我正在构建一个小的在线多步骤形式(通过隐藏div在单个html中制作),其中每个按钮push都增加一个固定数字的var:

JS:

var score = 20;
function updateScore (){
            score = score + 10;
            result.value = score;
        }

我希望显示分数:

使用<input type="text" name="result" id="result" value="" size="" readonly>我得到正确的值(30)。

然而,当我使用<script>document.write(result)</script>时,我什么也得不到,使用<script>document.write(score)</script>时,我得到了原始的var(20)。

同样的问题,当我希望var输出在jquery的进度条。

我怎么能确保它是更新的var,它显示在document.write?

编辑:完整的JS

var currentLayer = 'lp';
var score = 10;
function showLayer(lyr){
    hideLayer(currentLayer);
    document.getElementById(lyr).style.visibility = 'visible';
    document.getElementById(lyr).style.display = 'block';
    currentLayer = lyr;
}
function hideLayer(lyr){
    document.getElementById(lyr).style.visibility = 'hidden';
    document.getElementById(lyr).style.display = 'none'
}
function goTo(lyr){
    showLayer(lyr);
    score = score + 10;
    resultat.value = score;
}
function goToMinus(lyr){
    showLayer(lyr);
    score = score - 10;
    resultat.value = score;
}    
  $(function() {
    $( "#progressbar" ).progressbar({
      value: score
      });
  });

result是HTML输入元素,因此打印结果将是:

<script>document.write(result.value)</script>

关于写正确的"score" var值,确保只有一个"var score",并且它在同一个作用域中

我建议在您的updateScore函数中使用document.getElementById('result').value而不是result.value,以确保您访问正确的元素。

我已经包含了一个示例,其中setInterval将每秒调用updateScore来说明正在更新的结果,

var score = 20;
function updateScore (){
            score = score + 10;      
            document.getElementById("result").value = score;
        }
setInterval(updateScore,1000);

可以在下面修改

http://jsfiddle.net/d3QqN/