javascript - 无法更改 <option> 中的背景颜色

标签 javascript php html css

当我输入 onClick进入<select> ,脚本工作,但是当我把它放入 option它不起作用!

这是 HTML select脚本:

            <select name="<?php echo $pos; ?>" id="<?php echo $pos; ?>">
                <option value="0">0</option>
                <option onClick="ship('1','<?php echo $pos; ?>');" value="1">1</option>
                <option onClick="ship('2','<?php echo $pos; ?>');" value="2">2</option>
                <option onClick="ship('3','<?php echo $pos; ?>');" value="3">3</option>
                <option onClick="ship('4','<?php echo $pos; ?>');" value="4">4</option>
            </select>

这是 JavaScript:

<script>
    function ship(num, pos) {
        if (num == 0){
            document.getElementById(pos).style.backgroundColor="white";
        }
        if (num == 1){
            document.getElementById(pos).style.backgroundColor="red";
        }
        if (num == 2){
            document.getElementById(pos).style.backgroundColor="green";
        }
        if (num == 3){
            document.getElementById(pos).style.backgroundColor="blue";
        }
        if (num == 4){
            document.getElementById(pos).style.backgroundColor="yellow";
        }



    }

</script>

最佳答案

onclick 选项在大多数浏览器上不起作用(或者可能没有),相反,您可以根据其 值监听选择和切换的更改事件 属性。

你可以这样做:

var color = [
    "white",
    "red",
    "green",
    "blue",
    "yellow"];

window.onload = function () {
    document.getElementById('selectId').onchange = function () {
        this.style.backgroundColor = color[this.value];
    }
}

Demo

关于javascript - 无法更改 <option> 中的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549560/

相关文章:

html - 如何使所有照片正常显示?

html - 他们是否有任何可以呈现 <label> 标记的 asp 网络服务器控件?

javascript - jquery DataTable 搜索和排序不起作用

php - 我如何通过 PHP 将多个单选按钮值作为所有单独的值传递给 MYSQL 数据库,但将它们分成组?

javascript - 外部 单击以重置颜色?

PHP-Mysql事务

php - php 表单中的数据未插入数据库

html - 使用 SVG 堆叠蒙版 div 的内容

javascript - svg-import.js 导入错误 "SVG Import got unexpected type sodipodi:namedview "

javascript - 禁用 HTML5 输入验证,同时启用模糊验证