js获取总结,js的第一步

获取元素

1.根据id获取元素

document.getElementById("id属性的值");

返回值是一个元素对象,即当前id的对象

2.根据标签名字获取元素

document.getElementsByTagName("标签的名字");

返回值是一个伪数组;

3.根据name属性的值获取元素

document.getElementsByName("name属性的值");

返回值是一个伪数组

4.根据类样式的名字获取元素

document.getElementsByClassName("类样式的名字");

返回值是一个伪数组

5.根据选择器获取元素

1.document.querySelector("选择器");可获取css中的一个后代document.querySelector('.box .bx');document.querySelector('.box ul');

返回值是一个元素对象

2.document.querySelectorAll("选择器");可获取css中的多个后代document.querySelectorAll('.box li');

返回值是一个伪数组

总结:

一、记忆区分方法

Elements中有“s”,英文意思(复数形式)所以不止一个,调用时当然要用数组的形式啦

Element只有一个,即唯一的一个元素,没有其他元素和他相同

同理:根据选择器获取元素,一个带有“all”(不止一个),一个不带(只有一个)。调用方式显然一个有数组下标一个没有

二、选择父级的子类

方法一:

1.获取父类

var obj=获取父类;

2.使用子类

obj.children[下标]    或    obj.child;

3.如果两个父盒子(分别是“.obj1”和“.obj2”)有相同的子类(“.same”),但你又想获取你想要的".obj1"的".same"

先获取父类:var obj1 = document.querySelector('.obj1');

在获取子类:var  same1 = obj1.querySelector('.same');

方法二:

1.可获取css中的一个后代:querySelector

获取大盒子里面的一个后代类:document.querySelector('.box  .bx');     

获取大盒子里面的一个标签: document.querySelector('.box  ul');

2.获取css中的多个后代:querySelectorAll

获取大盒子的不止一个后代:document.querySelectorAll('.box  li');

三、获取css样式 、当前属性offset(动态)和 元素属性style(更改),scroll和client

1.样式obj.style.cssText = ` `;相当于直接在css里面修改样式

cssText 本质是什么?

cssText 的本质就是设置 HTML 元素的 style 属性值。

cssText的优势?

可以直接加important,style.top="80px !important" 是加不上

一般情况下我们用js设置元素对象的样式会使用这样的形式:

var element= document.getElementById(“id”);element.style.width=”20px”;element.style.height=”20px”;element.style.border=”solid 1px red”;

样式一多,代码就很多;而且通过JS来覆写对象的样式是比较典型的一种销毁原样式并重建的过程,这种销毁和重建,都会增加浏览器的开销。

使用cssText:

element.style.cssText=”width:20px;height:20px;border:solid 1px red;”;

这样就可以尽量避免页面reflow,提高页面性能。

cssText 返回值是什么?

cssText也有个缺点,会覆盖之前的样式。因此使用cssText时应该采用叠加的方式以保留原有的样式。另外,在某些浏览器中(比如 Chrome),你给他赋什么值,它就返回什么值。在 IE 中则比较痛苦,它会格式化输出、会把属性大写、会改变属性顺序、会去掉最后一个分号,比如:document.getElementById("d1").style.cssText = "color:red; font-size:13px;";alert(document.getElementById("d1").style.cssText);

在 IE 中值为:FONT-SIZE: 13px; COLOR: red

解决办法:

Element.style.cssText += ‘;width:100px;height:100px;top:100px;left:100px;’

另外,这个属性在加有!important的行内样式时特别有用,比如,top:80px !important  。而用style.top="80px !important" 是加不上的。

2.obj.offset+"属性"    和    obj.style.+"属性"   

理解: 获取元素大小位置用 offset, 给元素更改值用style。“属性”可以是width、heigth、left、top等等

offset+“属性”

不带单位),理解成当前属性,是只读属性,不可赋值

console.log(box.offsetWidth); //输出数字。

行内,内嵌,外部样式可以获取, 是只读属性,不可赋值

1,offsetWidth的实际宽度

            offsetWidth = width + 左右padding + 左右boder

2,offsetHeith的实际高度

                      offsetHeith = height + 上下padding + 上下boder

3,offsetTop实际宽度

                      offsetTop:当前元素 上边框 外边缘 到 最近的已定位父级(offsetParent) 上边框、内边缘的距离。  如果父级都没有定位,则分别是到body 顶部 和左边的距离

4,offsetLeft实际宽度

              offsetLeft:当前元素 左边框 外边缘 到 最近的已定位父级(offsetParent) 左边框 内边缘的距离。如果父级都没有定位,则分别是到body 顶部 和左边的距离

style. +“属性”

获取属性并修改属性,理解成最终属性。

console.log(box.style.width); //不输出,只能获取行内样式表

在有输出时,(带有单位),不含padding+border,且是可读写属性,可以赋值

3.obj. client .+"属性" 和 obj.scroll.+"属性"


一、clientWidth和clientHeigh 、 clientTop和clientLeft

        1,clientWidth的实际宽度

        clientWidth = width+左右padding

        2,clientHeigh的实际高度

        clientHeigh = height + 上下padding

        3,clientTop的实际宽度

          clientTop = boder.top(上边框的宽度)

        4,clientLeft的实际宽度

            clientLeft = boder.left(左边框的宽度)

二、scrollWidth和scrollHeight 、 scrollTop和scrollLeft

        1,scrollWidth实际宽度

              scrollWidth:获取指定标签内容层的真实宽度(可视区域宽度+被隐藏区域宽度)。

        2,scrollHeight的实际高度

        scrollHeight:获取指定标签内容层的真实高度(可视区域高度+被隐藏区域高度)

        3,scrollTop

                scrollTop :内容层顶部 到 可视区域顶部的距离。

                持续获取高度的方式:

                window.addEventListener('scroll', ()=>{var scrollTop = document.documentElement.scrollTop;});

        4,scrollLeft

                scrollLeft:内容层左端 到 可视区域左端的距离.

三、getBoundingClientRect

用于获取某个元素相对于视窗的位置集合。集合中有top, right, bottom, left等属性。

1.语法:这个方法没有参数。

```

rectObject = object.getBoundingClientRect();

```

2.返回值类型:TextRectangle对象,每个矩形具有四个整数性质( 上, 右 , 下,和左 )表示的坐标的矩形,以像素为单位。

 rectObject.top:元素上边到视窗上边的距离;

 rectObject.right:元素右边到视窗左边的距离;

 rectObject.bottom:元素下边到视窗上边的距离;

 rectObject.left:元素左边到视窗左边的距离;

四、获取属性  (getAttribute)

getAttribute()是HTML DOM的一个方法,用以获取HTML元素的属性(如id,name,type以及其他自定义属性)。同理,setAttribute()、removeAttribute()都是对HTML元素的属性进行操作。

嘿嘿,是不是被标题吸引啦,原因是最近听说“标题党”这个词,想皮一下试试感觉。其实是菜鸟总结啦,欢迎大家补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容

  • 方便起见不分parameter[形参,出现在函数定义中]和argument[实参,其值为传入函数的值],一律当作a...
    东月三二阅读 388评论 0 0
  • DOM DOM查询 通过domcument对象获取元素节点:getElementById("id"):通过id属性...
    hellomyshadow阅读 336评论 0 0
  • w一:rem布局公式 document.documentElement.style.fontSize=20*doc...
    stars甜阅读 784评论 0 1
  • javascript的组成 javascript 由以下三部分组成: ECMAscript(核心):javascr...
    这是这时阅读 937评论 0 3
  • 一、重点知识 js是直译式语言,不需要编译就能运行 目前只有input 标签有name属性 只能拿到元素标签的固有...
    一花一世界yu阅读 437评论 1 2