我学习javascript并试图了解有关该语言的更多信息。 主要问题是变量初始化的位置。 如果我把它放在函数内部工作正常,但如果它没有工作,但另一个变量名为" marcaDeSkate"甚至认为它的功能正常。
这是我正在玩的代码:
<label name="marcasDeSkate">Marcas de Skate:</label>
<select id="marcasList" name="marcaList">
<option value="Darkstar">Darkstar</option>
<option value="Element">Element</option>
<option value="Girl">Girl</option>
</select>
<input type="text" name="skatebrand" id="txtSkateBrand" />
<input type="button" value="Add Skate" id="btnAdd" />
<p id="demo"></p>
<script>
var marcaDeskate = document.getElementById("marcasList").value
var btnAdd = document.getElementById("btnAdd");
var txtSkate = document.getElementById("txtSkateBrand").value /* the variable I'm testing */
btnAdd.addEventListener("click", addSkate);
/*
function addSkate()
{
alert(marcaDeskate + " " + txtSkate);
}
*/
function addSkate() {
document.getElementById("demo").innerHTML += marcaDeskate + " " + txtSkate + "<br/>";
}
</script>
答案 0 :(得分:0)
您需要在txtSkate
函数中初始化addSkate
变量。您在用户写入输入值之前初始化txtSkate
变量。
试试这个:
var marcaDeskate = document.getElementById("marcasList").value
var btnAdd = document.getElementById("btnAdd");
var txtSkate;
btnAdd.addEventListener("click", addSkate);
function addSkate() {
txtSkate = document.getElementById("txtSkateBrand").value;
document.getElementById("demo").innerHTML += marcaDeskate + " " + txtSkate + "<br/>";
}
&#13;
<label name="marcasDeSkate">Marcas de Skate:</label>
<select id="marcasList" name="marcaList">
<option value="Darkstar">Darkstar</option>
<option value="Element">Element</option>
<option value="Girl">Girl</option>
</select>
<input type="text" name="skatebrand" id="txtSkateBrand" />
<input type="button" value="Add Skate" id="btnAdd" />
<p id="demo"></p>
&#13;