【发布时间】:2020-07-14 18:08:02
【问题描述】:
我正在学习 js,最近,我为我的英语和我的问题的明显性道歉。我有两个问题,我会很感激纯 JavaScript 的解决方案。
根据几个教程,我在 HTML 页面中安装了 localStorage 脚本。
pag1.html
<p> Hello! what's your name?</p>
<form action="pag2.html">
<input type="text" id="txt"/>
<input type="submit" value="nome" onClick="passvalues();"/>
</form>
// the form has a link to pag2.html
<script>
function passvalues()
{
var nme=document.getElementById("txt").value;
localStorage.setItem("textvalue",nme);
return false;
}
</script>
假设用户输入了名字“Lucy”:
pag2.html
<p>Hi <span id="result">Lucy<span> nice to meet you!</p>` // the name appears
<p>How are you today <span id="result">NOTHING</span>?</p>` // the name does not appear
<a href="pag3.html">pag3</a>
<script>
document.getElementById("result").innerHTML = localStorage.getItem("textvalue");
</script>
第一个问题
NAME 只出现一次是因为我的错误还是必须这样?我应该使用另一种语法让它出现几次吗?
pag3.html
<p><span id="result">Lucy</span>which gender designation do you prefer to be used with you?</p>
<p><a href="male.html">male</a></p>
<p><a href="female.html">female</a></p>
<p><a href="neutral.html">neutral</a></p>
<script>
document.getElementById("result").innerHTML = localStorage.getItem("textvalue");
</script>
第二个问题
在第 3 页中,用户必须选择他想被称为男性、女性还是中性。
一种解决方案是根据选择的类型设置三个不同的页面。但是这种解决方案并不优雅,并且会增加页面数量。
我似乎在某处读到,使用 js 可以转到另一个页面,同时通过链接设置布尔变量的值(真/假)。
类似这样的东西(语法是发明的):
<a href="female.html" set var f true> female</a>
这将允许您通过插入三个“if”来创建一个登录页面:
if (female true) {
text = "brava";
} else if (male true) {
text= "bravo";
} else {
text = "bene";
}
可以这样做吗?如何? 我已经多次尝试这个脚本htmlgoodies,但对我来说太难了。
你好,
首先,我要感谢 @cssyphus 和 @Shahnawazh 的回答。
问题 1
我设法用脚本在同一页面上多次显示该名称:
<script>
var result = document.getElementsByClassName('result');
[].slice.call(result).forEach(function (className) {
className.innerHTML = localStorage.getItem("textvalue");
});
</script>
但是,我真的需要在所有需要显示名称的页面上都包含它吗? 我也尝试将脚本插入到外部 js 页面中,但名称甚至没有出现一次。
问题 2
关于第二个问题,我没有得到肯定的结果。
【问题讨论】:
-
您是否要存储多个名称以便创建它们的列表?
-
不,我正在尝试编写非线性的多选文本,仅使用 CSS、HTML 和 Javascript。
标签: javascript html