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 相关文章推荐
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
JS判断当前日期是否大于某个日期的实现代码
Sep 02 Javascript
做web开发 先学JavaScript
Dec 12 Javascript
javascript闭包的理解
Apr 01 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
react-native 完整实现登录功能的示例代码
Sep 11 Javascript
详解vue中使用express+fetch获取本地json文件
Oct 10 Javascript
详解Angular2学习笔记之Html属性绑定
Jan 03 Javascript
vue动态绑定class的几种常用方式小结
May 21 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
Python 画出来六维图
2019/07/26 Python
安装PyInstaller失败问题解决
2019/12/14 Python
python小白学习包管理器pip安装
2020/06/09 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
优秀护士演讲稿
2014/04/30 职场文书
小区推广策划方案
2014/06/06 职场文书
志愿者活动总结报告
2014/06/27 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
高中体育课教学反思
2016/02/16 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android