2-4 jQuery选择器之全选择器(*选择器)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

jQuery选择器之全选择器(*选择器)

在CSS中,经常会在第一行写下这样一段样式

* {padding: 0; margin: 0;}

通配符*意味着给所有的元素设置默认的边距。jQuery中我们也可以通过传递*选择器来选中文档页面中的元素

描述:

$( "*" )

抛开jQuery,如果要获取文档中所有的元素,通过document.getElementsByTagName()中传递"*"同样可以获取到

不难发现,id、class、tag都可以通过原生的方法获取到对应的节点,但是我们还需要考虑一个兼容性的问题,我这里顺便提及一下,比如:

  1. IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName里面会包含注释节点,这个通常是不应该的
  2. getElementById的参数在IE8及较低的版本不区分大小写
  3. IE7及较低的版本中,表单元素中,如果表单A的name属性名用了另一个元素B的ID名并且A在B之前,那么getElementById会选中A
  4. IE8及较低的版本,浏览器不支持getElementsByClassName

看到了吧,作为一名合格的前端不是那么简单的,就一个基本的选择器上面都需要做这么多兼容,幸好有jQuery的出现,让我们省了很多功夫,如果大家对jQuery的实现感兴趣,可以看我另一个门课程 《jQuery源码解析》

任务

在代码编辑器中第43行填写相应的代码

$("*")
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  6. <title></title>
  7. <style>
  8. div {
  9. width: 100px;
  10. height: 90px;
  11. float: left;
  12. padding: 5px;
  13. margin: 5px;
  14. background-color: #EEEEEE;
  15. }
  16. </style>
  17. <script src="https://www.imooc.com/static/lib/jquery/1.9.1/jquery.js"></script>
  18. </head>
  19. <body>
  20. <div class="aaron">
  21. <p>class="aaron"</p>
  22. <p>选中</p>
  23. </div>
  24. <div class="aaron">
  25. <p>class="aaron"</p>
  26. <p>选中</p>
  27. </div>
  28. <div class="imooc">
  29. <p>class="imooc"</p>
  30. <p>jQuery选中</p>
  31. </div>
  32. <div class="imooc">
  33. <p>class="imooc"</p>
  34. <p>jQuery选中</p>
  35. </div>
  36.  
  37. <script type="text/javascript">
  38. //获取页面中所有的元素
  39. var elements1 = document.getElementsByTagName('*');
  40. </script>
  41. <script type="text/javascript">
  42. //获取页面中所有的元素
  43. var elements2 = ? ;
  44. //原生与jQuery方法比较
  45. //===表示数据和类型都相等
  46. if(elements2.length === elements1.length){
  47. elements2.css("border","1px solid red");
  48. }
  49. </script>
  50. </body>
  51.  
  52. </html>
下一节