当HTML选择值的值发生变化时,我想在javascript中更新变量。
当我在浏览器中选择选项2或3时,级别变量仍显示选项1值(级别= 2)。
如果不可能,我很乐意听到其他一些选择。
这是HTML - >
<select id="nivel">
<option value="1">easy</option>
<option value="2">medium</option>
<option value="3">hard</option>
</select>
<p id="lvl">Level: </p>
这是js - &gt;
var level;
if(document.getElementById("nivel").value == "1"){
level = 2;
}
else{
if(document.getElementById("nivel").value == "2"){
level = 5;
}else{
level = 9;
}
}
document.getElementById("lvl").innerHTML=("Level: " +level);
答案 0 :(得分:0)
只是一些改变? : - &gt;替换if .. else 检查此片段,我希望它会有所帮助
var level;
function updateLevel(event) {
level = event.value;
level = (level == '1') ? '2' : (level == '2') ? '5' : '9';
document.getElementById("lvl").innerHTML = ("Level: " + level);
}
<select id="nivel" onchange="updateLevel(this)">
<option value="">Select</option>
<option value="1">easy</option>
<option value="2">medium</option>
<option value="3">hard</option>
</select>
<p id="lvl">Level: </p>
答案 1 :(得分:0)
尝试使用HTML5 data-
属性
选项1:使用JS
var nivel = document.getElementById('nivel');
var lvl = document.getElementById('lvl');
nivel.onchange = function() {
lvl.innerHTML = 'Level: ' + this.options[this.selectedIndex].getAttribute('data-level');
};
nivel.onchange();
&#13;
<select id="nivel">
<option value="1" data-level="2">easy</option>
<option value="2" data-level="5">medium</option>
<option value="3" data-level="9">hard</option>
</select>
<p id="lvl"></p>
&#13;
选项2:使用jQuery
$(function() {
$('#nivel').on('change', function() {
$('#lvl').text('Level: ' + $(this).find('option:selected').data('level'));
}).trigger('change');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="nivel">
<option value="1" data-level="2">easy</option>
<option value="2" data-level="5">medium</option>
<option value="3" data-level="9">hard</option>
</select>
<p id="lvl"></p>
&#13;
答案 2 :(得分:0)
您的代码中存在多个问题:
change
下拉列表中关联select
事件id
条件下使用了不正确的if
。它应该是nivel
而不是lvl
changeLevel()
函数,以便根据默认选择设置默认的level
变量。
function changeLevel(){
var level;
if(document.getElementById("nivel").value == "1"){
level = 2;
}
else{
if(document.getElementById("nivel").value == "2"){
level = 5;
} else{
level = 9;
}
}
document.getElementById("lvl").innerHTML=("Level: " +level);
}
changeLevel();
&#13;
<select id="nivel" onchange='changeLevel()'>
<option value="1">easy</option>
<option value="2">medium</option>
<option value="3">hard</option>
</select>
<p id="lvl">Level: </p>
&#13;