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插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 jQuery
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
jQuery实现的中英文切换功能示例
Jan 11 jQuery
jquery分页优化操作实例分析
Aug 23 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
一篇入门的php Class 文章
2007/04/04 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python对文件操作知识汇总
2016/05/15 Python
opencv与numpy的图像基本操作
2019/03/08 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
南京软件公司的.net程序员笔试题
2014/08/31 面试题
大二法学专业职业生涯规划范文
2014/02/12 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
保留意见审计报告
2015/06/05 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL