如何让这个javascript var在HTML页面上工作

How can I get this javascript var to work across HTML pages?

本文关键字:HTML 工作 var javascript      更新时间:2023-09-26

第1页:

<html>
<head>
</head>
<body>
    <input type="checkbox" class="checkbox" name="item" value="X">Value X<br>
    <input type="checkbox" class="checkbox" name="item" value="Y">Value Y<br>
    <script type='text/javascript'>
        var score = 0;
        $('.checkbox').click (function(){
          var thisCheck = $(this);
          if ( thisCheck.is(':checked') ) {
            score = score + 1;
          }
        });
        sessionStorage.score = score;
    </script>
    <button type="button" onclick="window.location.href='page2.html'">Continue</button>
</body>
</html>

第2页:

<html>
<head>
</head>
<body>
    <script type='text/javascript'>
    var score = sessionStorage.getItem('score');
    document.write(score);
    </script>
</body>
</html>

第2页总是打印null。我该怎么解决这个问题
(例如,如果两个复选框都被选中,我们需要第2页来打印2)

谢谢!

注意:我知道有一个简单的解决方案,让表单操作写入一个asp文件,然后读取它,但我不能在这个系统上创建新文件。

首先,您的两个复选框实际上都没有一个类"checkbox",因此即使您选中其中一个复选框,jquery事件也永远不会触发。

此外,您将变量声明为thisCheck,但试图使用thisCheck访问它(注意小写c)。Javascript区分大小写,因此"thischeck"永远不会被赋值。

您没有很好地设置会话,您需要这样做sessionStorage.setItem("score", score)

您需要在每次单击时设置sessionStorage值:

var score = 0;
$('.checkbox').click (function() {
  if (this.checked) {
      score = score + 1;
  }
  sessionStorage.score = score;
});
sessionStorage.score = score;

注意,如果可能想扣除1,如果复选框未选中,在这种情况下,请尝试以下代码:

var score = 0;
sessionStorage.score = score;
$('.checkbox').click (function() {
    score = score + (this.checked ? 1 : -1);
    sessionStorage.score = score;
});

顺便说一句,您需要将class="checkbox"添加到输入中。

我找到了解决方案。无论出于何种原因,score都被解析为Int以外的东西。

使用score = parseInt(score) + 1;解决了这个问题。

感谢所有提交答案的人!我们最终到达了那里。