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实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
jquery实现提示语淡入效果
May 05 jQuery
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
jQuery实现拖动效果的实例代码
Jun 25 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
JQuery 又谈ajax局部刷新
Nov 27 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
jquery实现掷骰子小游戏
Oct 24 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 反向排序和随机排序代码
2010/06/30 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python中的集合介绍
2019/01/28 Python
python os.fork() 循环输出方法
2019/08/08 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Django框架模板用法入门教程
2019/11/04 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
农业大学毕业生的个人自我评价
2013/10/11 职场文书
高中学生期末评语
2014/04/25 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
详解PyTorch模型保存与加载
2022/04/28 Python