【发布时间】:2021-02-23 02:36:59
【问题描述】:
我正在创建一个文本生成器。我正在尝试在 JavaScript 中编写一个函数,当单击下拉菜单中的选项时,将保存与该选项对应的文本,当单击“生成”按钮时,该保存的文本将显示为页面的标题。
问题:当我单击“生成”按钮时,错误的文本显示为标题。此外,当我想选择不同的选项时,标题永远不会改变。我该如何解决这个问题?
到目前为止我尝试过的是:
var x;
var y;
function format1Select(){
x = document.getElementsByClassName("formats")[0];
y = document.getElementsByClassName("nav")[0];
y.innerHTML = x.innerHTML + " +";
} //to select choice 1
function format2Select(){
x = document.getElementsByClassName("formats")[1];
y = document.getElementsByClassName("nav")[0];
y.innerHTML = x.innerHTML + " +";
} //to select choice 2
function format3Select(){
x = document.getElementsByClassName("formats")[2];
y = document.getElementsByClassName("nav")[0];
y.innerHTML = x.innerHTML + " +";
} // to select choice 3
function generate() {
if (x = document.getElementsByClassName("formats")[0]) {
x != document.getElementsByClassName("formats")[1];
x != document.getElementsByClassName("formats")[2];
format1 = "I am";
i = document.getElementsByTagName("h1")[0];
i.innerHTML = format1;
} else if (x = document.getElementsByClassName("formats")[1]) {
x != document.getElementsByClassName("formats")[0];
x != document.getElementsByClassName("formats")[2];
format2 = "I believe";
i = document.getElementsByTagName("h1")[0];
i.innerHTML = format2;
} else {
x != document.getElementsByClassName("formats")[0];
x != document.getElementsByClassName("formats")[1];
format3 = "I will";
i = document.getElementsByTagName("h1")[0];
i.innerHTML = format3;
}
}
我使用的 HTML:
<div class="show"><div class="nav"> Choose Format +</div></div>
<div class="hide">
<div class="formats" onclick="format1Select()">I am...</div>
<div class="formats" onclick="format2Select()">I believe...</div>
<div class="formats" onclick="format3Select()">I will...</div>
</div>
</div> <br>
<div id="opt">
<div class="options" onclick="generate()">Generate</div>
<div class="options"><a href="">Survey</a></div>
</div>
【问题讨论】:
-
请同时添加您使用的 HTML 代码
-
x != document.getElementsByClassName("formats")[1]; x != document.getElementsByClassName("formats")[2];这些表达式是什么意思,你没有使用返回值! -
@HarshanaSerasinghe 添加了 HTML 代码
-
和
if(x = document.getElementsByClassName("formats")[1]) { 您正在分配而不是检查!它应该是==而不是= -
@SaymoinSam 我使用这些是为了确保不保存其他值。
标签: javascript html arrays function getelementsbyclassname