zoukankan      html  css  js  c++  java
  • 点击select下拉框获取option的属性值

    select下拉框作为前端开发者应该是经常使用的,最近在项目中遇到这样的情况,点击下拉框选项,需要获取所点击的option的属性值,当时想很简单啊,给option加一个点击事件不就行了,然后就加了一下,结果一运行悲催了,怎么点击option事件就是不会执行。这是为什么呢,刚开始也不懂,之前没遇到过这样的需求,后来经过学习,才恍然大悟,原来select option没有点击事件,要想获得所选option的属性值,需要通过jquery的change()方法来获取,下面通过代码解释一下,代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <!-- 告诉IE使用最新的引擎渲染网页 -->
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title></title>
        </head>
        <body>
            <div>
                <select id="choice">
                    <option value="1">东方1</option>
                    <option value="2">东方2</option>
                    <option value="3">东方3</option>
                    <option value="4">东方4</option>
                </select>
            </div>
        </body>
        <script src="js/jquery-2.1.4.min.js"></script>
        <script>
            $("#choice").change(function () {
                let $dom = $("#choice");
                let index = $dom[0].options[$dom[0].selectedIndex].value;
                alert(index);
            });
        </script>
    </html>

    如上面代码所示,给select添加change()方法,用来监听下拉框的变化,当点击下拉框option进行选择时,select发生变化,触发change()事件,$dom[0].selectedIndex表示点击option的索引值,select option的索引值默认从0开始,$dom[0].options[$dom[0].selectedIndex]表示所点击option对象,取到对象之后就可以取相应的属性值了。在这里用到$dom[0],是因为selectedIndex和options是dom的属性,只有dom对象才能去调用,所以在这里进行了jquery对象的转换。至于jquery对象和dom对象的相互转换,我在博客中有分享,欢迎查看。

    补充:上面介绍的是最基本的方法,后来在项目中使用了简单的方法:

    //获取option文本

    $("#choice option:selected").text();

    //获取option的value值

    $("#choice option:selected").val();

    //获取option的属性值

    $("#choice option:selected").attr("属性");

  • 相关阅读:
    预览上传
    使用 Vagrant 打造跨平台开发环境fffff
    使用 Vagrant 打造跨平台开发环境
    弱智python小游戏猜数字
    Linux设置固定IP
    call_user_func
    mongodb 下载安装 转
    chrome浏览器下的xdebug helper使用方法
    类似NL的update更新
    如何启用并行?
  • 原文地址:https://www.cnblogs.com/web-panpan/p/7294775.html
Copyright © 2011-2022 走看看