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 相关文章推荐
filters.revealTrans.Transition使用方法小结
Aug 19 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
JavaScript数组常用方法
Mar 02 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
vue观察模式浅析
Sep 25 Javascript
详解javascript设计模式三:代理模式
Mar 25 Javascript
详解Bootstrap 学习(一)入门
Apr 12 Javascript
vue实现购物车案例
May 30 Javascript
vue使用video插件vue-video-player详解
Oct 23 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版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
JQuery 常用操作代码
2010/03/14 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python 获取计算机的网卡信息
2021/02/18 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
年终晚会主持词
2014/03/25 职场文书
交通事故协议书
2014/04/15 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2014司机年终工作总结
2014/12/05 职场文书
海洋天堂观后感
2015/06/05 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL