章节
问答
课签
笔记
评论
占位
占位

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
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最赞回答 / 慕函数1487353
因为div容器全部都左浮动,脱离正常的文档流,body里面相当于没有什么元素,因此上边框和下边框合成了一条直线; 你写的height:40px;是正确的,只是height和40px中间是:而不是 分号;

已采纳回答 / TowerRush
因为elements2.length === elements1.length 不相等 所以elements2.css("border","1px solid red");没运行elements1是所有div标签的集合  而elements2 应该是整个dom的集合 (百度的 貌似很少有人这样用)把$("*") 改成$("div"); 即可

最新回答 / weixin_慕婉清3555631
 var elements1 = document.getElementsByTagName('*'); var elements2 = $("*");elements2.length === elements1.length

最新回答 / weixin_慕婉清3555631
因为 elements2 = $('*');而elements2.css("border","1px solid red");可以看成$('*').css("border","1px solid red");

已采纳回答 / 柴墟散人
elements1是DOM对象,elements2是jQuery对象,而css方法是jQuery中的方法,elements1只能使用纯js的方法;$(elements1)就可以使用css方法了

最赞回答 / 我叫唯爱i
你的elements1 获取了所有元素,给body加上了border,body的子元素是左浮动高度塌陷问题所以出现了横杆

已采纳回答 / 不成大触不可熟睡
body默认是没有高度的,它是被子元素撑大的。设置border 就能够看出来。浏览器的开发厂商为了设置背景色建议,背景色设置给body,那么就会全屏应用。但是,body的高度并没有发生改变。

最赞回答 / 听说乱码最厉害
在应用时,单引号和双引号都可以随意使用.只需注意以下几点:一.最外层如果已经使用了单引号,那么里面在使用引号时就只能使用双引号.二.最外层如果已经使用了双引号,那么里面在使用引号时就只能使用单引号.使用单个引号时,是没有讲究的

最新回答 / 椎间盘
我试了一下  应该是这个问题,换成div以后,body和html的边框就都不见了

最赞回答 / 夏天过去了
$div 是一种变量名的定义方式而已, 可以字母和数字定义变量,也可以用下划线和$开头来定义变量名,没有什么特殊意义。

最赞回答 / 慕村1994845
这里教给我们的是思考的方向,而不是最优的解决方式

已采纳回答 / 我就是个小人物
===是严格比较,==是一般比较,也就是说==比较的是数值,类型不一样还能转换,而===比较的有数和型,你这里elements1、2类型不一样,但是他们的length是一样!比较的是后面的属性值和型,不是前面的elements1、2

最新回答 / qq_权限_03689985
我实验过  这个不能用于body标签。。<script type="text/javascript">        //获取页面中所有的元素       /* var bo = document.getElementsByTagName('body');        bo.style.border="1px solid red";*/        var elements1 = document.getElementsByTagName('div');        for(var i=...

最新回答 / honey菠萝吹雪
if (a===b) {...};表示a和b在数据类型和数值两方面都相等的话,就会执行后面相应的代码。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言