Heim  >  Artikel  >  Web-Frontend  >  javascript中select下拉框的用法总结

javascript中select下拉框的用法总结

WBOY
WBOYOriginal
2016-06-01 09:54:441068Durchsuche

本文针对开发项目中遇到的问题,进行了汇总

问题1:如何选择select的option里面的值? 

首先会用到一个方法 onchange();这个方法主要用于触发,选择框内容改变时间

实现代码:

<code class="language-html">


  <meta charset="UTF-8">


  <select onchange="test(event)">
    <option>安静</option>
    <option>晴天</option>
    <option>七里香</option>
  </select>
  <script type="text/javascript">
    function test (e) {
      var e = event ? event : window.event;
      alert(e.target.value);
    }
  </script>

</code>

你可以复制代码到这里运行并查看效果

 

问题2:可是在开发中,我们一般选择了内容只是为了显示,而真正要做的是和后台进行交互数据传输,这时候,我们为了尽可能减少http数据传输,所以一般会传 id 等作为数据传输标志,如何做? 
开发中,option一般都是动态创建的,那么这时候,我们只需要给你动态创建一个自定义属性。那么如何获取自定义属性呢?

<code class="language-html">


  <meta charset="UTF-8">


 
  <select onchange="test(event)" id="sel"></select>
 
  <script type="text/javascript">
    //定义内容的json数据,一般从后台获取
    var data = [
      {
        name: '晴天',
        id: '1'
      },
      {
        name: '安静',
        id: '2'
      },
      {
        name: '七里香',
        id: '3'
      }
    ];
 
    createOption('sel',data);
    //创建option
    function createOption(parentId, data){
      var parentId = document.getElementById(parentId);
      for(var i=0; i<data.length; i++){
        var opt = document.createElement('option');
        //设置option的值
        opt.innerHTML = data[i].name;
        //定义option的自定义值
        opt.setAttribute('dataid', data[i].id);
        parentId.appendChild(opt);
      }
    }
    //选取自定义属性的方法
    function test (e) {
      var e = event ? event : window.event;
      var target = e.target;
      var index = target.selectedIndex;
      alert("我的id="+target[index].getAttribute('dataid'));
    }
  </script>

</code>

你可以复制代码到这里运行并查看效果

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn