当前位置 博文首页 > Traveler∝゛过客的博客:option设置onclick无效

    Traveler∝゛过客的博客:option设置onclick无效

    作者:[db:作者] 时间:2021-07-03 13:06

    option设置onclick无效

    今天写一个小案例:获取select选择的值,发现设置onclick 不起作用

    具体看下代码:

    
    
    <script>
    			window.onload = function() {
    				//获取select
    				let select = document.getElementsByTagName("select")[0];
    				//获取子节点
    				let options = select[0].children;
    				 for (let i = 0; i < options.length;) {
    					 //为每个子节点设置函数
    					 options.onclick = function () {
    						 alert(this.innerHTML);
    					 }
    				 }
    				
    			}
    </script>
    <select>
    <option value ="1">option1</option>
    <option value ="2">option2</option>
    <option value ="3">option3</option>
    <option value ="4">option4</option>
    			
    </select>
    

    以上代码,选择option 时并没有弹出内容

    解决办法:

    首先看select 的属性 和 事件:

    1. selectedIndex 设置或返回下拉列表中被选项目的索引号。注意:索引是从0开始的。
    2. onchange 当改变选择时调用的事件句柄

    option 是不能支持onclick ,但select有onchange和selectedIndex 属性可以达到相同的目的

    具体看代码:

    <script>
    			window.onload = function() {
    				//获取select
    				let select = document.getElementsByTagName("select")[0];
    				//获取子节点
    				let options = select.children;//获取所有子节点--option
    
    				select.onchange = function () {
    					let index = select.selectedIndex;//获取选择的option对应的索引;
    					alert(options[index].innerHTML);
    				};			
    			}
    </script>
    <select>
    			<option value ="1">option1</option>
    			<option value ="2">option2</option>
    			<option value ="3">option3</option>
    			<option value ="4">option4</option>			
    </select>
    

    问题解决:
    在这里插入图片描述

    cs