获取标签对象
document.getElementById()
document.querySelector() 获取一个标签对象
document.getElementsByClassName()
document.getElementsByClassTagName() 获取伪数组,不能forEach()循环
document.getElementsByName()
document.querySelector() 获取伪数组,可以forEach()循环
for…in 和 for循环的区别
1, for循环,索引是循环变量 for…in循环,索引是自定变量
2, for…in循环,比for循环多以一些内容
for…in循环,在循环标签伪数组时,会多获取一些内容
在 proto 中的 3个内容
之后做一些操作时,会产生报错信息,但是一般不会影响程序的正常执行
推荐:使用for循环,或者forEach()循环
只会循环遍历获取到标签和索引,不会有多余的内容
给标签添加属性
标签对象.setAttribute(‘属性名称’ , 属性值);
一次只能定义一个属性,如果要定义多个属性,要执行多次
获取标签属性的属性值
标签对象.getAttribute('属性名称');
获取到的结果,都是字符串类型
几个特殊的属性设定方式
id属性 class属性 直接定义在标签对象上的方法
可以直接定义或者获取,不同通过 get ,set
oDiv.id = ‘div1’;
总结
1,可以通过 setAttribute() 设定标签所有的属性 包括 id , class
可以通过 getAttribute() 所有标签所有的属性的属性值 包括 id , class
所有的属性,设定或者获取,都建议,通过set,get完成
2,id和class属性可以直接通过 标签对象.id和标签对象.className
来设定或者获取
3,根据不同版本的浏览器,有一些不在标签对象本身属性上的,也可以直接设定
例如 name , titile
但是因为浏览器兼容问题,推荐还是使用set,get
4,这里属性值的设定,是替换操作,会覆盖之前的设定属性
而不是新增添加属性操作
for循环和forEach()的区别
for循环
第一次循环建立一个循环变量 i
之后每次循环,都是操作的这个循环变量
是对一个循环变量,重复赋值
不管循环多少次,都只是建立一个变量 i 对这个变量 重复赋值,进行操作
操作到最后 只有一个 i 存储最终的数值
绑定事件,并且执行
执行事件时,for循环已经执行完毕,i的数值是5
执行程序,虽然点击的标签不同,但是 i 都是一个变量 最终数值都是5
点击标签不同,i 都是相同的5,i + 1都是6
点击任意标签,触发的都是 i+1为6 的效果
如果要是使用for循环完成效果
就要给标签,添加属性,在属性中,存储当前的索引值
执行时,再调用这个索引值
forEach()
forEach() 定义变量的方式和 for循环不同
虽然 变量名称没有改变,但是 每次循环都会创建一个独立不同的变量
存储的数值,也是独立的不同的数值,而且相互之间不会影响
此时当forEach() 循环结束时,循环几次,就有几个独立的变量,存储每次循环对应的数据内容
此时触发事件 每个事件中 变量存储的都是独立的不同的相互不影响的数据数值