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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
jQuery Migrate 插件用法实例详解
May 22 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
escape unescape的php下的实现方法
2007/04/27 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
vue实现评价星星功能
2020/06/30 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
django站点管理详解
2017/12/12 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
python中update的基本使用方法详解
2019/07/17 Python
python实现广度优先搜索过程解析
2019/10/19 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
小学生中国梦演讲稿
2014/04/23 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
演讲开场白和结束语
2015/05/29 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书