zoukankan      html  css  js  c++  java
  • 关于jQuery操作下拉框

    今天脑抽了一下,然后给自己挖了一个坑,不过解决了也更清楚这个问题。

    开始是这样的:

    <select id="province-select">
                <option >选择省份</option>
                <option class='pro_id'  pro_id="1">name1</option>
                <option class='pro_id'  pro_id="2">name2</option>
                <option class='pro_id'  pro_id="3">name3</option>
                <option class='pro_id'  pro_id="4">name4</option>
                <option class='pro_id'  pro_id="5">name5</option>
                <option class='pro_id'  pro_id="6">name6</option>
    </select>
    <script>
    $('.pro-select').click(function(){
       var province_id=$(this).attr('pro_id');
       var province_response=xxx.ajaxRequest('<{flink ctl="city:city_list"}>',{'province_id':province_id},false);
       var city_list='<option>选择城市</option>';
       for (pro_id in province_response)
       {
          console.log(province_response[pro_id].link);
          city_list+='<option class="city-name" href="'+province_response[pro_id].link+'" >'+province_response[pro_id].name+'</option>';
       }
       $('#city-select').html(city_list);
    });
    </script>

    然后发现死活都不触发这段js代码,然后百度一下……发现自己想错了。

    <select>标签是通过Onchange来触发的……所以写了如下代码

    <select id="province-select">
                <option >选择省份</option>
                <option  value="1">name1</option>
                <option  value="2">name2</option>
                <option  value="3">name3</option>
                <option  value="4">name4</option>
                <option  value="5">name5</option>
                <option  value="6">nam6e</option>
    </select>
    <script>
    $('#province-select').change(function(){
            var province_id=$(this).val();
            var province_response=xxx.ajaxRequest('<{flink ctl="city:city_list"}>',{'province_id':province_id},false);
            var city_list='<option>选择城市</option>';
            for (pro_id in province_response)
            {
                city_list+='<option class="city-name" href="'+province_response[pro_id].link+'" >'+province_response[pro_id].name+'</option>';
            }
            $('#city-select').html(city_list);
        });
    </script>

    解决问题~

    刚才又找到一种方法:

    <script>
        $(this).find('option:selected').html();
         $(this).find('option:selected').attr();
    </script>
  • 相关阅读:
    深入理解JavaScript系列
    Knockout应用开发指南(完整版) 目录索引
    js原生设计模式——8单例模式之简约版属性样式方法库
    彻底理解JavaScript原型
    Javascript模块化编程(一):模块的写法
    使用Grunt构建自动化开发环境
    js原生之一个面向对象的应用
    js原生之函数
    angular源码分析:angular中的依赖注入式如何实现的
    js原生之scrollTop、offsetHeight和offsetTop等属性用法详解
  • 原文地址:https://www.cnblogs.com/leekale/p/5200244.html
Copyright © 2011-2022 走看看