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实现简单的手风琴效果
Apr 17 jQuery
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jQuery实现图片下载代码
Jul 18 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
更优雅的事件触发兼容
2011/10/24 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
深入探讨前端框架react
2015/12/09 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
python数据结构之列表和元组的详解
2017/09/23 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
大学活动邀请函
2014/01/28 职场文书
师德师风自查总结
2014/10/14 职场文书
2015年纪委工作总结
2015/05/13 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏