当我制作Mad Libs游戏时,我去了一个他/她的角色。但后来这个名字是用户生成的,所以我不能选择任何一个。所以,我做了这个:
var libButton = document.getElementById("lib-button");
var storyDiv = document.getElementById("story");
var teacher = document.getElementById("teacher");
var person = document.getElementById("person");
var gender = document.getElementById("gender").value;
var libIt = function() {
if (gender === "xxx") {
heShe = "He/she";
}
else if (gender === "male") {
heShe = "He";
}
else if (gender === "female") {
heShe = "She";
}
// The story!
storyDiv.innerHTML = "Your story: At the beginning, " + person.value + " hated graphs. " + heShe + " just didn't get the hang of it. Then, " + teacher.value + " told " + person.value + " about the uses of graphs. " + person.value + " started to see how graphs are useful, therefore linking the outside life to graphs. Now, " + person.value + " knew why they are learning graphs, and started to get the hang of it. The end.";
};
libButton.addEventListener('click', libIt);
<ul>
<li>Teacher's Name: <input type="text" id="teacher"></li>
<li>Someone's Name: <input type="text" id="person"></li>
<li>
<label>Gender of that person
<select id="gender">
<option value = "xxx">---</option>
<option value = "male">Male</option>
<option value = "female">Female</option>
</select>
</label>
</li>
</ul>
<button id="lib-button">Lib it!</button>
但是,出于某种原因,在cloud9中,当涉及到他/她部分时,它总是显示heShe
,即使下拉列表位于"男性"或"女性"。我希望它是,如果下拉菜单在"男性",那么它会显示He
,当它在"女性"时,它会显示She
,当它处于"---"时,就会显示He/she
。为什么没有发生这种事?
所有的getElementById
代码都在libIt()
之外,因此在加载页面时,它会获取表单的所有值,基本上忽略了您的选择。对于#story和#lib按钮,这并不重要,但#tear、#gender和#person需要在函数顶部获取它们的值,因此您可以在单击按钮时获得更新的值。