我怎样才能让这个 javascript 变量在 HTML 个页面上工作?
How can I get this javascript var to work across HTML pages?
第 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,例如)
谢谢!
N.B。我知道有一个简单的解决方案,方法是将表单操作写入 asp 文件,然后读取该文件,但我无法在此系统上创建新文件。
你没有很好地设置会话,你需要这样做你需要
sessionStorage.setItem("score", score)
首先,您的两个复选框实际上都没有 'checkbox' 的 class,因此即使您选中其中一个复选框,jquery 事件也永远不会触发。
此外,您将变量声明为 thisCheck 但尝试使用 thischeck 访问它(注意小写的 c)。 Javacript 区分大小写,因此 'thischeck' 永远不会被赋值。
您需要在每次点击时设置 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;
解决了问题。
感谢所有提交答案的人!我们终于到了。
第 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,例如)
谢谢!
N.B。我知道有一个简单的解决方案,方法是将表单操作写入 asp 文件,然后读取该文件,但我无法在此系统上创建新文件。
你没有很好地设置会话,你需要这样做你需要
sessionStorage.setItem("score", score)
首先,您的两个复选框实际上都没有 'checkbox' 的 class,因此即使您选中其中一个复选框,jquery 事件也永远不会触发。
此外,您将变量声明为 thisCheck 但尝试使用 thischeck 访问它(注意小写的 c)。 Javacript 区分大小写,因此 'thischeck' 永远不会被赋值。
您需要在每次点击时设置 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;
解决了问题。
感谢所有提交答案的人!我们终于到了。