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 相关文章推荐
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
js与jquery获取input输入框中的值实例讲解
Feb 27 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
jQuery实现开关灯效果
Aug 02 jQuery
jQuery实现简单弹幕制作
Dec 10 jQuery
html中两种获取标签内的值的方法
Jun 16 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 UTF8中文字符截断函数代码
2012/09/11 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
关于jQuery object and DOM element
2013/04/15 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
解读python如何实现决策树算法
2018/10/11 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
读书小明星事迹材料
2014/05/03 职场文书
项目投资合作意向书
2014/07/29 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
户籍证明模板
2014/09/28 职场文书
加班费申请报告
2015/05/15 职场文书
《藏戏》教学反思
2016/02/23 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
以下牛机,你有几个
2022/04/05 无线电