关于var x = document.getElementById("Id名")
document.getElementById("Id名"),顾名思义,按Id名找出需要用的元素,在HTML代码中找。
(1). 按id名查找一个元素:
a. var 一个元素对象=document.getElementById("id名")
b. 在上面代码中,document/在整个页面中,ById("id名")/通过id名
c. 返回值:
1). 如果找到符合要求的元素,则只返回 一个元素对象
2). 如果没找到,则返回 null
强调:
.前的主语必须是 document
因为 只找一个 元素,所以函数名中Element没有 s 结尾,是单数形式。
()中的id名不是id选择器,所以不用加 # 开头

(2). 按标签名查找多个元素:
a. var 类数组对象=任意父元素.getElementsByTagName("标签名")
b.
任意父元素/在指定父元素范围内,
ByTagName("标签名")/通过标签名获取多个元素
c. 返回值:
1). 如果找到符合要求的元素,就返回类数组对象
2). 如果没找到,返回空类数组对象: {length:0 }
总结: 查找相关函数返回值的3种情况!
如果原函数本来返回下标i,如果找不到,返回-1
比如: indexOf(), search(),
如果原函数本来返回一个对象或数组,如果找不到,返回null
比如: match(), getElementById()
如果原函数本来返回类数组对象,如果找不到,返回空类数组对象{length:0}
比如: DOM和jq中几乎所有的查找多个元素的函数!
(2). 按标签名查找多个元素:
a. var 类数组对象=任意父元素.getElementsByTagName("标签名")
d. 强调:
1). 因为找到多个元素,所以返回值为类数组对象
2). 最好指定只在一个父元素范围内查找符合要求的元素。
——优化,查找范围越小,查找越快!
3). 因为找到多个元素,所以函数名中的Elements以s结尾复数
4). 不仅查找直接子元素,而且会在所有后代元素中找符合要求的元素。

d. 强调:
5).
如果这个函数规定要返回类数组对象,那么在任何时候,都会返回类数组对象!即使只找到一个元素,也会把这唯一的一个元素放在类数组对象中第一个位置返回。

这里会找不span上色,甚至报错,原因是getElementsByTagName()既然规定返回类数组对象,则无论找到一个元素,还是找到多个元素都返回类数组对象
,所以,直接修改getElementsByTagName()的查找结果集合,是无法真正修改找到的DOM元素对象的
如果我们想使用找到唯一一个元素,必须再加[0],从类数组对象中取出第一个DOM元素对象,才是我们想要操作的DOM元素对象。

强调:
所以,如果只找到一个符合要求的元素时,必须用[0],取出类数组对象中第一个位置保存的元素对象,才能对这个元素对象继续执行后续操作!
(3). 按class名查找多个元素:
a. var 类数组对象=任意父元素.getElementsByClassName("class名")
b. 任意父元素/在指定父元素范围内,ByClassName("class名")通过class名获取多个元素
c. 返回值:
1). 如果找到符合要求的元素,就返回类数组对象
2). 如果没找到,返回空类数组对象: {length:0 }
d. 强调:
1). 因为找到多个元素,所以返回值为类数组对象
2). 最好指定只在一个父元素范围内查找符合要求的元素。
——优化,查找范围越小,查找越快!
3). 因为找到多个元素,所以函数名中Elements以s结尾,表示复数
4). 不仅查找直接子元素,而且会在所有后代元素中查找符合要求的元素。

d. 强调:
5). 如果这个函数规定要返回类数组对象,那么在任何时候,都会返回类数组对象!即使只找到一个元素,也会把这唯一的一个元素放在类数组对象中第一个位置返回。
如果只找到一个符合要求的元素时,必须用[0](同上),取出类数组对象中第一个位置保存的元素对象,才能对这个元素对象继续执行后续操作!!
(4). 按name名查找多个表单元素:
a. var 类数组对象=document.getElementsByName("name名")
b document/在整个页面范围内,ByName("name名")/通过name名获取多个元素
c. 返回值:
1). 如果找到符合要求的元素,就返回类数组对象
2). 如果没找到,返回空类数组对象: {length:0 }
d. 强调:
1). . 前必须是document,不能改为其它任意元素
2). 因为可能找到多个,所以也返回类数组对象
3). 因为可能找到多个,函数名中的Elements也是s结尾,表示复数
d. 强调:
4). 如果这个函数规定要返回类数组对象,那么在任何时候,都会返回类数组对象!即使只找到一个元素,也会把这唯一的一个元素放在类数组对象中第一个位置返回。
所以,如果只找到一个符合要求的元素时,必须用[0](对,又是要用[0]),取出类数组对象中第一个位置保存的元素对象,才能对这个元素对象继续执行后续操作
补充:var 类数组对象=任意父元素.getElementsByTagName("标签名")
“标签名”,如果是参数,就不需要加上双引号“”
浙公网安备 33010602011771号