我编写了一些代码,将每个数字放在一个数组中(依赖于for循环)并为它们分配一个HTML选项标记,然后将它们插入到一个选择列表中。结果是一个下拉菜单,范围为" 1"到" 100。
我的问题是我想从我创建的下拉菜单中选择一个号码,这样我就可以存储和/或显示它的价值,但不知道如何。
例如:假设我有一个等式X * 2.我希望能够从下拉列表中选择一个数字并使X等于该值(我从菜单中选择3,结果应为6)。
任何帮助将不胜感激。
HTML
<p>
<select id="selectLvl">
<option>Choose your Level:</option>
</select>
</p>
的JavaScript
var lvlStart = 1;
var lvlEnd = 101;
var arr = [];
while (lvlStart < lvlEnd) {
arr.push(lvlStart++)
}
var selectLvl = document.getElementById("selectLvl");
for (var i = 0; i <arr.length; i++) {
var opt = arr[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
selectLvl.appendChild(el);
}
答案 0 :(得分:1)
onchange
事件应该可以解决问题。
var lvlStart = 1;
var lvlEnd = 101;
var arr = [];
while (lvlStart < lvlEnd) {
arr.push(lvlStart++)
}
var selectLvl = document.getElementById("selectLvl");
for (var i = 0; i <arr.length; i++) {
var opt = arr[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
selectLvl.appendChild(el);
}
selectLvl.addEventListener('change',function(){
// Get the selected value
var selectedLevel = this.value;
// if (selectedLevel * 2) returns NaN (Not a Number), output will be 0
var output = (selectedLevel * 2) || 0;
// alert the output
alert(output);
});
<select id="selectLvl">
<option>Choose your level:</option>
</select>
答案 1 :(得分:1)
.value
属性可用于获取当前选定的值:
for (var i = 1; i <= 100;)
selectLvl.add(new Option(i++))
selectLvl.onchange = function() { console.log(selectLvl.value * 2) }
<select id=selectLvl>
<option>Choose your Level:</option>
</select>
答案 2 :(得分:0)
<select>
。 setAttribute()
为每个选项设置值。 <select>
。事件
change
个事件添加到<select>
。 使用
获取选中 值 el.options[el.selectedIndex].value
将此值作为参数放在自定义函数中,此处为double()
。
push()
。示例强> (选择一些数字以查看其工作原理)
var level = document.getElementById("level"),
storage = [];
function double(n) {
return n * 2;
}
for (i = 1; i < 101; i += 1) {
var option = document.createElement("option");
option.setAttribute("value", i);
option.innerHTML = i; // Or textContent
level.appendChild(option);
}
level.addEventListener("change", function() { // Add change event
var value = this.options[this.selectedIndex].value;
alert(double(value));
storage.push(double(value));
alert(storage);
});
&#13;
<select id="level">
<option>Choose your Level:</option>
</select>
&#13;
答案 3 :(得分:-1)
您可以使用jQuery将其缩短如下;
var lvlStart = 1;
var lvlEnd = 101;
var selectLvl = document.getElementById("selectLvl");
for (var i=lvlStart ; i<= lvlEnd ; i++){
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
selectLvl.appendChild(el);
}
使用JQuery处理更改事件
$('#selectLvl').change(function(){
var x=this.value;
var answer=Number(x)*2;
alert('Answer= '+ answer);
});