HTML option 标签的 selected 属性

  HTML option 标签的 selected 属性
  
  http://www.w3school.com.cn/tags/att_option_selected.asp
  
  1、一般做WEB的时候,Chrome的兼容性会比较好,但是这里有个特殊的情况,下面的方法,Chrome会有问题。
  
  Chrome版本:版本67.0.3371.0(正式版本) (32 位)
  
  效果图
  
  这里写图片描述
  
  反例如下:(Chrome连续点击resetOption、setOption、resetOption、setOption就会出现问题)
  
  <!DOCTYPE html>
  
  <html>
  
  <head>
  
  <script src="/jquery/jquery-1.11.1.min.js"></script>
  
  <script>
  
  //取消选中
  
  function resetOption(id) {
  
  $('#' + id).find("option").each(function() {
  
  $(this).removeAttr("selected");
  
  });
  
  }
  
  // 选中。这里强调的是:Chrome的BUG(版本67.0.3371.0(正式版本) (32 位))
  
  function setOption(id, optionID) {
  
  if (optionID == null) {
  
  return;
  
  }
  
  $('#' + id).find("option").each(function() {
  
  if ($(this).val() == optionID) {
  
  $(this).attr("selected", "selected");
  
  }
  
  });
  
  }
  
  </script>
  
  </head>
  
  <body>
  
  <div>
  
  <select id="selectID">
  
  <option value='0'></option>
  
  <option value='1'>Volvo</option>
  
  <option value='2' selected="selected">Saab</option>
  
  <option value='3'>Mercedes</option>
  
  <option value='4'>Audi</option>
  
  </select>
  
  <button type="button" onClick="resetOption('selectID')">resetOption</button>
  
  <button type="button" onClick="setOption('selectID', '1')">setOption</button>
  
  </div>
  
  </body>
  
  正例,推荐以下方法:
  
  <!DOCTYPE html>
  
  <html>
  
  <head>
  
  <script src="/jquery/jquery-1.11.1.min.js"></script>
  
  <script>
  
  //取消选中
  
  function resetOption(id) {
  
  $('#' + id).find("option").each(function() {
  
  $(this).removeAttr("selected");
  
  });
  
  }
  
  // 选中。--------------------------这部分代码不同
  
  function setOption(selectID) {
  
  var data = [ {
  
  id : '0',
  
  name : ''
  
  }, {
  
  id : '1',
  
  name : 'Volvo'
  
  }, {
  
  id : '2',
  
  name : 'Saab'
  
  }, {
  
  id : '3',
  
  name : 'Mercedes'
  
  }, {
  
  id : '4',
  
  name : www.douniu157.com'Audi'
  
  } ];
  
  // default value
  
  var id = 'id';
  
  var name = www.thd580.com'name';
  
  // empty value
  
  var option = '<option value="0"></option>';
  
  // other value
  
  for ( var i in data) {
  
  if (selectID != undefined && data[i][id] == selectID) {
  
  option += '<option value="' + data[i][id] + '" selected="selected" >' + data[i][name] + '</option>';
  
  continue;
  
  }
  
  option += 'www.thd580.com<option value="' + data[i][id] + '">' + data[i][name] + '</option>';
  
  }
  
  $('#selectID').html(option);
  
  }
  
  </script>
  
  </head>
  
  <body>
  
  <div>
  
  <select id="selectID">
  
  <option value='0'>www.douniu178.com </option>
  
  <option value='1'>Volvo</option>
  
  <option value='2' selected="selected">Saab</option>
  
  <option value='3'>Mercedes</option>
  
  <option value='4'>Audi</option>
  
  </select>
  
  <button type="button" onClick="resetOption('selectID')">resetOption</button>
  
  <button type="button" onClick="setOption('1')">setOption</button>
  
  </div>
  
  </body>
  
  </html>
  
  2、测试地址(把上面的代码贴进去,提交代码,右侧就会出现效果)
  
  http://www.w3school.com.cn/tiy/t.asp?f=jquery_hide

转载于:https://www.cnblogs.com/qwangxiao/p/8666643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值