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 相关文章推荐
javascript 对表格的行和列都能加亮显示
Dec 26 Javascript
js 可拖动列表实现代码
Dec 13 Javascript
jQuery操作input type=radio的实现代码
Jun 14 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
使用Chrome浏览器调试AngularJS应用的方法
Jun 18 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 Javascript
详解Vue中状态管理Vuex
May 11 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 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
优化使用mysql存储session的php代码
2008/01/10 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
浅析php工厂模式
2014/11/25 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
php7下的filesize函数
2019/09/30 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
javascript之锁定表格栏位
2007/06/29 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python实现图片彩色转化为素描
2019/01/15 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
聊聊python中的循环遍历
2020/09/07 Python
举例讲解Python装饰器
2020/12/24 Python
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
材料员岗位职责范本
2015/04/11 职场文书
门店店长岗位职责
2015/04/14 职场文书
医院感染管理制度
2015/08/05 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS