<!DOCTYPE html>
<html>
<head>
<style>
body {
}
#review {
font-size: 60px;
}
#added {
font-size: 60px;
}
</style>
</head>
<body>
<input type="text" id="myText">
<button class="firstone" onclick="google()">Student Record</button>
<button class="secondone" onclick="addthis()">Add Student</button>
<p id="review"><p>
<p id="added"><p>
<script type="text/javascript">
var superfile = [];
function lengthfill(val){
return val.length>4;
}
function numfill(give){
return !isNaN(give);
}
function google(){
var str = document.getElementById("myText").value;
var arr = str.split("/");
arr = arr.filter(lengthfill);
arr = arr.filter(numfill);
var junk = "Caution: This Student Will Rate You Low, lol :)";
var funk = "Hoorah! Good To Go With This Student :)";
if (str.includes("/") && arr.length==0){
document.getElementById("review").innerHTML = "Sorry! This is Not a Valid URL :)";
}
else if (superfile.length==0){
document.getElementById("review").innerHTML = "Yay! No Record Found :)";
}
else if (superfile.includes(arr[0])){
document.getElementById("review").innerHTML = junk;
}
else {
document.getElementById("review").innerHTML = funk;
}
}
function addthis(){
var str = document.getElementById("myText").value;
var arra = str.split("/");
arra = arra.filter(lengthfill);
arra = arra.filter(numfill);
var funky = "Wow! Student Already Black-Listed :)";
var junky = "Boom! Student Black-Listed :)";
if (superfile.includes(arra[0]) && arra.length!==0){
document.getElementById("review").innerHTML=funky;
}
else if (str.includes("/") && arra.length!==0) {
document.getElementById("review").innerHTML=junky;
superfile.push(arra[0]);
}
else {
document.getElementById("review").innerHTML="Sorry! This is Not a Valid URL :)";
}
}
</script>
</body>
</html>
我想要做的是输入一个网址并提取网址的特定部分。然后,如果满足某个条件,则将提取的部分推送到位于js代码开头的超文件数组中。 push数组的条件位于js代码末尾的最后一个if语句中。
我的目标是在点击添加学生按钮后将值永久存储在超级文件数组中。我现在面临的唯一问题是,每当我刷新页面时,superfile数组从开始开始,即空。
谢谢!
正如我在评论中所说,当页面刷新时,重置变量是一种正常行为,你无法避免这种情况。 或者您使用数据库存储值,然后将值分配给变量或者您可以存储到localstorage,将数组转换为JSON对象。
单击Add Student按钮(在要添加的函数内)后,将其调用以存储在localStorage中:
localStorage.setItem('ItemName', JSON.stringify(superfile));
当您想要从已存储的对象加载或设置superfile的值时,您使用:
var superfileJson = localStorage.getItem('ItemName');
这将返回一个JSON对象,将其用作普通数组,执行JSON.parse(superfileJson)