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插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
jquery对table做排序操作的实例演示
Aug 10 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
jQuery中过滤器的基本用法示例
Oct 11 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
js与jquery获取input输入框中的值实例讲解
Feb 27 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python自动连接ssh的方法
2015/03/07 Python
用Python编写简单的定时器的方法
2015/05/02 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Python 学习教程之networkx
2019/04/15 Python
python打开windows应用程序的实例
2019/06/28 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
宿舍使用违章电器检讨书
2014/01/12 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
环保标语大全
2014/06/12 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书