jQuery 判断元素整理汇总


Posted in Javascript onFebruary 28, 2017

是否含有某 class

在表单提交之前,我们往往要利用 JavaScript 校验用户输入值,如果用户输入有误,那么我们就往该表单元素添加一个 error 的 class,再配合 CSS,该表单元素就显示为红色,以提醒用户。

最后我们还要根据是否有 error 来决定是否提交表单。怎么判断呢?如下:

<input type="text" name="username" />
<input type="text" name="password" class="error" />
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
<!--
alert($("input").hasClass("error"));
//-->
</script>

用 hasClass 即可。只要有一个元素具备 error 这个 class,那么就返回 true;只有所有元素都不具备 error,才返回 false。

元素是否存在

if ($("#good").length <= 0) {
  alert("不存在。");
}
else {
  alert("存在。");
}

如上,用 length 属性判断数组长度,以决定元素是否存在。

是否 checked

<input type="checkbox" checked="true" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="disabled" />
<input type="checkbox" checked="hahaha" />
<input type="checkbox" checked />
<input type="checkbox" />
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
<!--
$("input").each(function (){
  alert($(this).attr("checked"));
});
//-->
</script>

如上代码,有六个 input,显示为:前五个为选中状态,最后一个为未选中。

alert 时:前五个为 checked,最后一个为 undefined。

也就是说只要标签中有 checked,即为选,与其属性值无关,而 jQuery 取属性值时也是这么认的。要判断是否选中,用 attr("checked") == "checked" 即可。

不过对于 radio 要注意

<input type="radio" name="r1" checked="true" />
<input type="radio" name="r1" checked="false" />
<input type="radio" name="r1" checked="disabled" />
<input type="radio" name="r1" checked="hahaha" />
<input type="radio" name="r1" checked />
<input type="radio" name="r1" />
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
<!--
$("input").each(function (){
  alert($(this).attr("checked"));
});
//-->
</script>

如上代码,有六个 input,由于是 radio,且 name 相同,显示为:第五个为选中状态,其余为未选中。

alert 时:前五个为 checked,最后一个为 undefined。

所以 jQuery 在这里要注意一下,它取的值与显示情况不符。

应付 radio 更好的办法

有时候,我们只需要关心已经选中的 radio,所以可以这么做:

<input type="radio" name="r1" value="1" checked="true" />
<input type="radio" name="r1" value="2" checked="false" />
<input type="radio" name="r1" value="3" checked="disabled" />
<input type="radio" name="r1" value="4" checked="hahaha" />
<input type="radio" name="r1" value="5" checked />
<input type="radio" name="r1" value="6" />
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
<!--
alert($("input:radio:checked").val());
//-->
</script>

这样结果就是 5。

是否禁用

<input type="text" disabled="true" />
<input type="text" disabled="false" />
<input type="text" disabled="disabled" />
<input type="text" disabled="hahaha" />
<input type="text" disabled />
<input type="text" />
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
<!--
$("input").each(function (){
  alert($(this).attr("disabled"));
});
//-->
</script>

如上代码,有六个 input,显示为:前五个为禁用状态,最后一个为可用。

alert 时:前五个为 disabled,最后一个为 undefined。

也就是说只要标签中有 disabled,即为禁用,与其属性值无关,而 jQuery 取属性值时也是这么认的。要判断是否禁用,用 attr("disabled") == "disabled" 即可。

Javascript 相关文章推荐
用jQuery打造TabPanel效果代码
May 22 Javascript
jQuery数据缓存用法分析
Feb 20 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
JavaScript中用let语句声明作用域的用法讲解
May 20 Javascript
IScroll5 中文API参数说明和调用方法
May 21 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
JavaScript浅层克隆与深度克隆示例详解
Sep 01 Javascript
jQuery倒计时代码(超简单)
Feb 27 #Javascript
js实现图片左右滚动效果
Feb 27 #Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 #Javascript
原生js实现旋转木马轮播图效果
Feb 27 #Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 #Javascript
js实现简单的手风琴效果
Feb 27 #Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 #Javascript
You might like
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
一张图带我们入门Python基础教程
2017/02/05 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
scrapy爬虫实例分享
2017/12/28 Python
python学习入门细节知识点
2018/03/29 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
一年级数学教学反思
2014/02/01 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
2014年科协工作总结
2014/12/09 职场文书
后备干部推荐材料
2014/12/24 职场文书
初中同学会致辞
2015/08/01 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技