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的动态创建表格的插件
Apr 05 Javascript
actionscript与javascript的区别
May 25 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
理解Javascript闭包
Nov 01 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 Javascript
原生js和jQuery实现淡入淡出轮播效果
Dec 25 Javascript
JS动态添加选项案例分析
Oct 17 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
JavaScript用构造函数如何获取变量的类型名
Dec 23 Javascript
Vue结合原生js实现自定义组件自动生成示例
Jan 21 Javascript
Mongoose中document与object的区别示例详解
Sep 18 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
1.PHP简介
2006/10/09 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
zend framework重定向方法小结
2016/05/28 PHP
Laravel日志用法详解
2016/10/09 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
PDO::inTransaction讲解
2019/01/28 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
前端微信支付js代码
2016/07/25 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Python爬取某平台短视频的方法
2021/02/08 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
个人自我鉴定写法
2013/11/30 职场文书
校园创业策划书
2014/01/14 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
责任书格式
2015/01/29 职场文书
实习介绍信模板
2015/01/30 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL