现在的位置: 首页 > 综合 > 正文

选择器中的一些注意事项

2018年05月06日 ⁄ 综合 ⁄ 共 2383字 ⁄ 字号 评论关闭

1、得到表单内表单元素的个数:(input、textarea、select、button)

$("#form1 :input").length;

2、得到表单内input元素:

$("#form1 input");

3、选择器中含有"."、"#"、"("、"]"等特殊字符

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> new document </title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <!--   引入jQuery -->
 <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script>
 <script type="text/javascript">
  $(function(){
   var $id_a  = $('#id.a');//jQuery对象
   var $id_b  = $('#id#b');//jQuery对象
   var $id_c =  $('#id[1]');  //jQuery对象
   alert( $id_a.html() );//这样会获取不到,输出null
   alert( $id_b.html() );//这样会获取不到,输出null
   alert( $id_c.html() );//这样会获取不到,输出null

   var $id_right_a  = $('#id//.a');//jQuery对象,对特殊字符,我们转义一下
   var $id_right_b  = $('#id//#b');//jQuery对象,对特殊字符,我们转义一下
   var $id_right_c  = $('#id//[1//]');    //对特殊字符,我们转义一下
   alert( $id_right_a.html() );//正确输出"aa"
   alert( $id_right_b.html() );//正确输出"bb"
   alert( $id_right_c.html() );//正确输出"cc"
  })
 </script>
</head>
<body>
 <div id="id.a">aa</div>
 <div id="id#b">bb</div>
 <div id="id[1]">cc</div>
</body>
</html>

4、属性选择器中的引号问题

 1.3.1放弃了1.1.1遗留下来的@符号,如果你使用1.3.1以上的版本,那么你不能在属性前添加@符号,比如:

$(' div[@title="test"] ');

正确的写法是去掉@符号,比如:

$(' div[title="test"] ');

5、选择器中含有空格的注意事项:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title> new document </title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <!--   引入jQuery -->
 <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script>
 <script type="text/javascript">
  $(function(){
    //注意区分类似这样的选择器
    //虽然一个空格,却截然不同的效果.
     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
  })
 </script>
</head>
<body>
 <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>
</body>
</html>
之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。

 var $t_a = $('.test :hidden');//带空格
以上代码是选取class为“test”的元素里面的隐藏元素。

 var $t_b = $('.test:hidden');;//不带空格的

则是选取隐藏的class为“test”的元素

 

抱歉!评论已关闭.