源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jQuery选择器特殊字符与属性空格问题

  • 时间:2020-09-20 17:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jQuery选择器特殊字符与属性空格问题
[b]一、选择器中含有特殊符号的注意事项 [/b] [b]1.选择器中含有“.”、“#”、“(”或“]”等特殊字符[/b] 根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特殊字符,如果按照普通的方式去处理出来的话就会出错。解决此类错误的方法是使用转义符转义。
<div id="id#b">bb</div> 
< div id="id[1]">cc</div> 
不能这样写:
$('#id#b'); 
$('#id[1]'); 
应该使用转义符号: [code]$('#id\\#b'); //转义特殊字符“#” $('#id\\[1\\]'); //转义特殊字符“[ ]”[/code] [b]2.属性选择器的引号问题 [/b]1.3.1版本彻底放弃了1.1.0版本遗留下的@符号,如果你使用1.3.1以上的版本,那么你不能在属性前添加@符号,比如: $('div[@title="test"']; 正确的写法是: [code]$('div[title="test"'];[/code] [b]二、选择器中含有空格的注意事项 [/b] 选择器中的空格也是不容忽视的,多一个空格或少一个空格也许会得到截然不同的结果。看下面这个例子,它的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 
之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。 [code]var $t_a = $('.test :hidden'); [/code]//有空格 是选取class为“test”的元素里面的隐藏元素。 [code]var $t_b = $('.test:hidden'); [/code]//没有空格 则是选取隐藏的class为“test”的元素。 这点和css是一样的 css中假如有个div有两个class属性.top 和[code] .right <div class="top right "></div>,[/code]在css中我们要选择它定义样式只能这样写 [code].top.right{ } [/code]而不能写成[code].top .right{ }[/code] 以上是小编为大家总结的全部内容啦,希望对大家的学习有所帮助~~
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部