jQuery选择器特殊字符与属性空格问题


Posted in jQuery onAugust 14, 2017

一、选择器中含有特殊符号的注意事项

1.选择器中含有“.”、“#”、“(”或“]”等特殊字符

根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特殊字符,如果按照普通的方式去处理出来的话就会出错。解决此类错误的方法是使用转义符转义。

<div id="id#b">bb</div> 
< div id="id[1]">cc</div>

不能这样写:

$('#id#b'); 
$('#id[1]');

应该使用转义符号:

$('#id\\#b'); //转义特殊字符“#”
$('#id\\[1\\]'); //转义特殊字符“[ ]”

2.属性选择器的引号问题
1.3.1版本彻底放弃了1.1.0版本遗留下的@符号,如果你使用1.3.1以上的版本,那么你不能在属性前添加@符号,比如:
$('div[@title="test"'];

正确的写法是:

$('div[title="test"'];

二、选择器中含有空格的注意事项

选择器中的空格也是不容忽视的,多一个空格或少一个空格也许会得到截然不同的结果。看下面这个例子,它的HTML代码如下:

<div class="test"> 
<div style="display:none;">aa</div> 
<div style="display:none;">bb</div> 
<div style="display:none;">cc</div> 
<div class="test" style="display:none;">dd</div> 
< /div> 
< div class="test" style="display:none;">ee</div> 
< div class="test" style="display:none;">ff</div>

使用如下的jQuery选择器分别获取它们。

//注意区分类似这样的选择器 
//虽然一个空格,却截然不同的效果. 
var $t_a = $('.test :hidden'); 
var $t_b = $('.test:hidden'); 
var len_a = $t_a.length; 
var len_b = $t_b.length; 
alert("$('.test :hidden') = "+len_a); //输出 4 
alert("$('.test:hidden') = "+len_b); //输出 3

之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。

var $t_a = $('.test :hidden'); //有空格 是选取class为“test”的元素里面的隐藏元素。

var $t_b = $('.test:hidden'); //没有空格 则是选取隐藏的class为“test”的元素。

这点和css是一样的 css中假如有个div有两个class属性.top 和 .right <div class="top right "></div>,在css中我们要选择它定义样式只能这样写 .top.right{ } 而不能写成.top .right{ }

以上是小编为大家总结的全部内容啦,希望对大家的学习有所帮助~~

jQuery 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
JQuery实现图片轮播效果
May 08 jQuery
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
jQuery Migrate 插件用法实例详解
May 22 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
jQuery 查找元素操作实例小结
Oct 02 jQuery
jquery实现手风琴案例
May 04 jQuery
jQuery实现手势解锁密码特效
Aug 14 #jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 #jQuery
jQuery:unbind方法的使用详解
Aug 14 #jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 #jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 #jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 #jQuery
jquery对table做排序操作的实例演示
Aug 10 #jQuery
You might like
php mssql 数据库分页SQL语句
2008/12/16 PHP
php split汉字
2009/06/05 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
功能强大的php文件上传类
2016/08/29 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
python里将list中元素依次向前移动一位
2014/09/12 Python
Python实现截屏的函数
2015/07/26 Python
python使用RNN实现文本分类
2018/05/24 Python
如何基于Python批量下载音乐
2019/11/11 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
献爱心活动总结
2014/05/07 职场文书
商场促销活动总结
2014/07/10 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
春节晚会开场白
2015/05/29 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
用Python生成会跳舞的美女
2022/01/18 Python