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 相关文章推荐
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
jQuery实现网页拼图游戏
Apr 22 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
jQuery实现动态加载瀑布流
Sep 01 jQuery
原生jQuery实现只显示年份下拉框
Dec 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中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
世界经理人咨询有限公司面试
2014/09/23 面试题
银行柜员应聘推荐信范文
2013/11/24 职场文书
人事文员岗位职责
2015/02/04 职场文书
项目负责人岗位职责
2015/02/15 职场文书
python 多态 协议 鸭子类型详解
2021/11/27 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS