javascript - 在 HTML Select 值更改时更新 JavaScript 变量
问题描述
当 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-->
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);
解决方案
尝试使用 HTML5data-
属性将值映射到级别:
选项 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();
<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>
选项 2:使用 jQuery
$(function() {
$('#nivel').on('change', function() {
$('#lvl').text('Level: ' + $(this).find('option:selected').data('level'));
}).trigger('change');
});
<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>
推荐阅读
- sql - Oracle Live SQL 不允许多行插入
- spring-kafka - 将 spring-kafka 更新到 2.4.0.RELEASE 时获取“java.lang.ClassNotFoundException:org.springframework.core.log.LogAccessor”
- r - 如何通过添加两列并赋予其中一个优先级来创建新列?
- javascript - 没有这个的另一个函数内部调用的函数上下文是什么?
- sql-server - Azure 数据库上的慢查询操作
- python - 如果任何数字是英镑,我如何从该输出中获得平均值并将货币转换为欧元?
- java - 为什么我有数组 [] 选项作为构造函数调用?
- rxjs - 等待 Observable 在 Array.Map 内部完成
- botframework - 有什么方法可以知道 Bot Activity 响应是否是最终响应?
- python - 在使用正则表达式搜索功能在 Python 中解析的多个 if 和 for 语句之后未定义变量