BCSP-玄子前端开发之JavaScript+jQuery入门CH04_DOM操作
4.4 操作 DOM
DOM:Document Object Model(文档对象模型)
4.5 节点与节点的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a13bkdpQ-1682304656665)(./assets/image-20230422173719655.png)]
4.5.1 节点信息
4.5.2 nodeName:节点名称
- 元素节点的标签名称
- 属性节点的属性名称
- 文本节点的nodeName永远是 #text
- 文档节点的nodeName永远是 #document
4.5.3 nodeValue:节点值
- 文本节点包含的文本
- 属性节点的属性值
- 对文档节点和元素节点不可用
4.5.4 nodeType:节点类型
节点类型 | nodeType值 |
---|
Element (元素) | ELEMENT_NODE (1) |
Attr (属性) | ATTRIBUTE_NODE (2) |
Text (文本) | TEXT_NODE (3) |
Comment (注释) | COMMENT_NODE (8) |
Document (文档) | DOCUMENT_NODE (9) |
4.6 访问节点
使用getElement系列方法访问指定节点
- getElementById()
- getElementsByName()
- getElementsByTagName()
4.6.1 node 属性
属性名称 | 描述 |
---|
parentNode | 返回节点的父节点 |
childNodes | 返回子节点集合,childNodes[i] |
firstChild | 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点 |
lastChild | 返回节点的最后一个子节点 |
nextSibling | 返回下一个节点 |
previousSibling | 返回上一个节点 |
格式化文档所添加的换行、回车、缩进等字符构成文本节点,干扰节点访问
| <div id="desc"> |
| <h2>关注我们</h2> |
| <ul> |
| <li>新浪微博</li> |
| <li>官方微信</li> |
| <li>联系我们</li> |
| <li>公益基金会</li> |
| <li>服务网点</li> |
| </ul> |
| </div> |
复制
4.6.2 element 属性
属性名称 | 描述 |
---|
firstElementChild | 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点 |
lastElementChild | 返回节点的最后一个子节点 |
nextElementSibling | 下一个节点 |
previousElementSibling | 上一个节点 |
4.6.3 兼容写法
| oNext = oParent.nextElementSibling || oParent.nextSibling |
| oPre = oParent.previousElementSibling || oParent.previousSibling |
| oFirst = oParent. firstElementChild || oParent.firstChild |
| oLast = oParent.lastElementChild || oParent.lastChild |
复制
4.7 操作节点样式
4.7.1 style 属性
复制
| document.getElementById("titles").style.color="#ff0000"; |
| document.getElementById("titles").style.fontSize="25px"; |
复制
类别 | 属性 |
---|
背景 | backgroundColor、backgroundImage、backgroundRepeat |
文本 | font、fontSize、fontWeight、textAlign、textDecoration、color |
边距 | padding、paddingTop 、paddingBottom、paddingLeft、paddingRight |
边框 | border、borderTop、borderBottom、borderLeft、borderRight |
JavaScript中,使用CSS样式与在HTML中稍有不同。
例如:JavaScript中访问font-size的写法是fontSize
4.7.2 mouse 事件
名称 | 描述 |
---|
onclick | 当用户单击某个对象时调用事件 |
onmouseover | 鼠标移到某元素之上 |
onmouseout | 鼠标从某元素移开 |
onmousedown | 鼠标按钮被按下 |
onmouseup | 鼠标按键被松开 |
4.7.3 className 属性
| HTML元素.className="class样式名" |
复制
| function over() { |
| document.getElementById("cart").className="cartOver"; |
| document.getElementById("cartList").className="cartListOver"; |
| } |
| function out() { |
| document.getElementById("cart").className="cartOut"; |
| document.getElementById("cartList").className="cartListOut"; |
| } |
复制
4.8 获取元素的样式
复制
| alert(document.getElementById("cartList").style.display); |
复制
只能获取内联样式的属性值
| document.defaultView.getComputedStyle(元素,null).属性; |
复制
| var cartList=document.getElementById("cartList"); |
| alert(document.defaultView.getComputedStyle(cartList, null).display); |
复制
不兼容IE6-8
| HTML元素. currentStyle.样式属性; |
复制
| alert(document.getElementById("cartList").currentStyle.display); |
复制
IE的用法
| function getStyle(obj, attr) { |
| return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr]; |
| } |
复制
浏览器兼容的做法
BCSP-玄子前端开发之JavaScript+jQuery入门CH04_DOM操作