在 JavaScript 中计数结果

counting result in javascript

本文关键字:结果 JavaScript      更新时间:2023-09-26

我正在尝试进行拖放测验,每个问题都在不同的HTML页面上,我需要获得结果,所以我在外部JavaScript文件中制作了一个JavaScript,它可以在1个HTML页面上工作,但它不能在多个页面上工作,例如..该函数正在重置自身。 我不是编程专家,所以这是计数器JS.js文件

var count=0; 
function fun() {
  count=count+1;
}
function result(){
    document.write("your mark is " + count + " from 9")
}

这是其他页面中的代码..我做了3只是为了测试它

 if ( slotNumber == cardNumber ) {
    ui.draggable.addClass( 'correct' );
    ui.draggable.draggable( 'disable' );
    $(this).droppable( 'disable' );
    ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
    ui.draggable.draggable( 'option', 'revert', false );
    correctCards++;
    fun();
  } 

那么我如何在不同的页面上调用它而不让它自行重置呢?

localStorage.setItem("count",count); 

然后你可以从不同的页面调用它

var count= localStorage.getItem("count");

您可以使用 localStorage 来存储同一域中所有页面的计数值。

function fun() {
  var count = localStorage.getItem("count") || 0;
  localStorage.setItem("count", ++count);
}
function result() {
  document.write("your mark is " + (localStorage.getItem("count") || 0) + " from 9")
}

试试这个。 这将为您记住连续页面加载的计数(除非您的浏览器不支持它,在这种情况下,它将在页面加载时重置为 0)。

function lstorage(key, val) {
    if(typeof(Storage) !== "undefined") {
        if(typeof(val) !== "undefined") {
            localStorage.setItem(key, val); 
        } else {
            return localStorage.getItem(key);
        }
    }
}
var count=lstorage("savedCount") || 0; 
function fun() {
    count++;
    lstorage("savedCount", count);
}

下面是一个 cookie 的示例。

// Set a cookie
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
} 
// Get a cookie
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
} 

如果网站只使用HTML和JavaScript,那么最好的选择可能是使用cookie或本地存储。

例如,在测试开始时使用 cookie,您将创建一个空 cookie,用于存储答案。格式由您决定,但我喜欢对所有内容使用类似 JSON 的结构,所以我会执行以下操作:

创建一个函数来获取您想要的 cookie:

function getAnswers(){
    var cookies = document.cookies;
    for(var i=0; i<cookies.length; i++){
        if(cookies[i].split("=")[0] == "answerswers"){
            return cookies[i].split("=")[1];
        }
    }
    return null;
}

测试开始时:

document.cookie="answerswers=[]";

在每个答案上:

var answers = JSON.parse(getAnswers());
answers.push({
    "question": questionNumber, //the id of the question
    "answerswer": pickedAnswer //what user selects
});
document.cookie("answerswers=" + JSON.stringify(answers));

最后,在执行getAnswers()时,您最终将得到一个对象数组,其中包含有关每个提交答案的信息。例如

[
    {"1": "A"},
    {"2": "D"},
    {"3": "C"},
    {"4": "B"}
]