select设置text的值选中(兼容ios和Android)基于jquery
前一段时间改了一个bug,是因为select引起的。当时我没有仔细看,只是把bug改完了就完事了,今天来总结一下。
首先说option中我们通常会设置value的属性的,还有就是text值的,请参见下面的HTML代码:
<select class="sel" name="">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="4">four</option>
<option value="5">five</option>
<option value="6">six</option>
</select>
大家基本上都是这样的, 然后两种操作,一种是让用户自己选择,然后获取选中的value值,或者是里面的text值。当然了,大部分都是value,取到,然后传给后台就可以了。这个基本上是没有难度的。请看下面的js代码:
$(".sel").change(function(){
var val = $(this).val();
alert(val);
var text1 = $(this).find("option:selected").text();
alert(text1);
})
这里就不详情的讲了。在ios和安卓上面也是没有问题的。
最主要的问题出在了设置的时候,如果后台给出的value的值的话,我其实我们设置也是比较简单的。直接使用$(".sel").val("值");就可以了。但是难就难在了如果和后台是给的我们text 的值的话,设置起来就稍微的麻烦了。
然后我就去百度了,搜索到了很多文章,其中包括咱们博客园的,都是使用的这种方法:
$(".sel").find("option:contains('six')").attr("selected",true);
其中的“six”假设是后台传给前端的需要选中的值。这种办法,在电脑上和Android上面表现是正常的,但是在ios端是不可以的。这种办法并不能使用。究其原因就是因为ios端是不让设置的,只能通过val才能改变其中的值。所以就有了下面的方法:
$(".sel option").each(function(i,item){
if("six" == $(item).text()){
$(".sel").val($(item).val());
}
})
相信大家也能看懂,就是利用循环,把这个select标签下的,所有的option循环起来。找到了对应的项,然后获取到相应的val,然后在去设置val的值,让该选中的项选中。这种办法亲测,可以兼容ios端。
最后附上所有的代码,可以直接粘贴到编辑器自己测试。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
</head>
<body>
<h1>为了测试selsect的选择,并且测试ios和Android是不是有兼容问题!</h1>
<select class="sel" name="">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="4">four</option>
<option value="5">five</option>
<option value="6">six</option>
</select>
<button class="button1">让第六个选中</button>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(".sel").change(function(){
var val = $(this).val();
alert(val);
var text1 = $(this).find("option:selected").text();
alert(text1);
})
$(".button1").on("click",function(){
//$(".sel").find("option:contains('six')").attr("selected",true);
$(".sel option").each(function(i,item){
if("six" == $(item).text()){
$(".sel").val($(item).val());
}
})
})
</script>
</html>
(其中的29行就是原来的写法,并不能兼容ios,大家可以自己测试。)
如果大家有什么好的办法,也欢迎大家在评论区留言。谢谢~
select设置text的值选中(兼容ios和Android)基于jquery的更多相关文章
- 利用React Native 从0到1 开发一款兼容IOS和android的APP(仿造京东)
最近有一部电视剧叫做<微微一笑很傻逼>里面有个男猪脚,人们都叫他大神~我觉得吧~大神是相对的~所以~啥事都得谦虚! 好了 今天介绍的是如何从0到1利用React Native开发一款兼容I ...
- 兼容ios和Android的复制js代码
//2种方法本人全部亲测有效 方法1:比较简单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- js的new Date兼容iOS和Android
在写一个移动端的报名活动页面时,其中一个逻辑是:过了报名日期,“立即报名”按钮置灰,不允许报名:具体逻辑如下,在真机上测试的时候,Android端可以把按钮失效,iOS则是无法把按钮失效.后台返回的时 ...
- 打开页面默认弹出软键盘,同时兼容iOS和Android
// 示例1 open_soft_keyboard({ input: "#username" }); // 示例2 open_soft_keyboard({ input: 'inp ...
- JavaScript调用App原生代码(iOS、Android)通用解决方案
实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来.这个场景应该算是比较完整的一次H5中的 ...
- radio,checkbox,select,input text获取值,设置哪个默认选中
11 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...
- jquery操作select(option)的取值,设置和选中
比如 <select class="selector"> <option value ="volvo">Volvo</option ...
- Jquery设置select控件指定text的值为选中项
<select name="streetid" id="streetid"> <option value="4">北 ...
- 使用val()另一个妙用------选中select/checkbox/radio的值
一直认为val()方法只有两个功能:1.能设置元素的值,2.获取元素的值.知道val()方法还有另外一个妙用,就是它能使select(下拉列表框).checkbox(多选框)和radio(单选框)相应 ...
随机推荐
- android使用.9图作为背景,内容不能居中的问题解决方案
在xml中使用.9图作为背景,内容不能居中,试了好多方法最后,加一个属性就ok了. android:padding:0dip; 解析:.9图作为背景时,不可拉伸的部分就相当于该空间的padding距离 ...
- 微服务架构 - SpringBoot整合Jooq和Flyway
在一次学习分布式跟踪系统zipkin中,发现了jooq这个组件,当时不知这个组件是干嘛的,后来抽空学习了一下,感觉这个组件还挺用的.它主要有以下作用: 通过DSL(Domain Specific La ...
- MySQL - 扩展性 3 负载均衡:眼花缭乱迷人眼
负载均衡的基本思路很简单: 在一个服务器集群中尽可能地的平均负载量. 基于这个思路,我们通常的做法是在服务器前端设置一个负载均衡器.负载均衡器的作用是将请求的连接路由到最空闲的可用服务器上.如图 1, ...
- java代码之美(11)---java代码的优化
java代码的优化 随着自己做开发时间的增长,越来越理解雷布斯说的: 敲代码要像写诗一样美.也能理解有一次面试官问我你对代码有洁癖吗? 一段好的代码会让人看就像诗一样,也像一个干净房间会让人看去很舒服 ...
- Bumblebee之负载、限流和故障处理实践
Bumblebee作为标准HTTP 1.1应用协议的网关,它能作为任何基于HTTP 1.1构建Webapi服务的前置网关.以下通过示例讲述如何用Bumblebee来制作一个asp.net core w ...
- xamarin开发android收集的一些工具
xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新. Vi ...
- Spring+SpringMVC+MyBatis的pom.xml依赖
<!-- 集中定义依赖版本号 --> <!-- 已经依据maven仓库给出的版本兼容信息,调节好合适的spring.mybatis-spring.mybatis.pagehelper ...
- 号称“新至强,可拓展,赢当下”的Xeon可拓展处理器有多逆天?
目前企业数据中心正在发生重大变化,许多企业正在经历基于在线服务和数据的广泛转型.他们将这些数据用于功能强大的人工智能和分析应用程序,这些应用程序可以将其转化为改变业务的洞察力,然后推出可以使这些洞察力 ...
- sublime text3快速生成html时,tab键失效
sublime tab键失效
- 3星|路江涌《共演战略画布》:PPT技巧级别的创新,缺实际分析案例
作者用自己的思路综合现有各种战略思想,给出企业各阶段各要素的战略分析工具.主要是2*2矩阵和双S曲线两种工具. 从书中的插图来看,这些工具在PPT演示中效果应该会不错. 作者在书中用这些工具做的分析不 ...