第三章

本文详细介绍了JavaScript如何操作DOM对象,包括通过getElement系列方法访问节点、根据层次关系获取节点、节点属性与元素属性的使用、节点操作(创建、删除、替换)以及样式操作。此外,还讲解了HTML元素属性如offset属性和事件处理。内容覆盖了DOM操作的基础与进阶技巧。
摘要由CSDN通过智能技术生成

第三章

JavaScript操作DOM对象

1.使用getElement系列方法访问指定节点
1.getElementById()

2.getElementsByName()

3.getElementsByTagName()
2.根据层次关系访问节点
1.节点属性
parentNode                  返回节点的父节点

childNodes                  返回节点的所有的子节点,包括元素节点、文本节点等
                            (表现为伪数组形式,可用childNode[]选择具体的第几号子节点)
                            (需要用专门的筛选语句提取单一类型节点,一般不推荐使用该节点属性)
附筛选语句:var ul = document.querySelector("ul");
           for (var i = 0; i < ul.childNodes.length; i++){
               if (ul.childNodes[i].nodeType == 1){
                  console.log (ul.childNodes[i]);
               }
           }

firstChild                  返回节点的第一个子节点,不区别元素类型(元素节点、文本节点等)
lastChild                   返回节点的最后一个子节点,不区别元素类型
                            (两者在实际的使用中,并不方便)
                            
nextSibling                 下一个节点,不区别元素类型(元素节点、文本节点等)
previousSibling             上一个节点,不区别元素类型

children                    仅返回节点的所有子节点中的元素节点(重点!!!!!!!!!!!!)
                            (非标准语句,但非常好用!!!!!!!!!!!!!!!!!!!!)

2.元素属性
firstElementChild            返回节点的第一个子“元素节点”
lastElementChild             返回节点的最后一个子“元素节点”
                             (IE9 以上的浏览器方可兼容,存在兼容性问题)

解决方案:children (使用简便,无兼容性问题,推荐使用!!!!!!!!!!!!!!!!!!!)
标签名.firstElementChild          等价于==>        标签名.children[0]
标签名.lastElementChild           等价于==>        标签名.children[标签名.children.length-1]

nextElementSibling	         下一个“元素节点”
previousElementSibling       上一个“元素节点”

3.节点信息
nodeName                 节点名称
nodeValue                节点值
nodeType                 节点类型


节点类型              nodeType值
元素element               1
属性attr                  2
文本text                  3
注释comments              8
文档document              9

注:两者一一对应,用来帮助判断节点类型

3.操作节点
1.操作节点的属性
getAttribute("属性名")

setAttribute("属性名","属性值")

2.创建节点
createElement(tagName)          创建一个标签名为tagName的新元素节点
例:var aEle = document.createElement("a");      创建一个超链接节点

A.appendChild(B)                把B节点追加至A节点的末尾(B成为A的子节点)
例:nmTd.appendChild(nmText);

insertBefore(A,B)               把A节点插入到B节点之前

cloneNode(deep)                 复制某个指定的节点

3.删除和替换节点
removeChild(node)                         删除指定的节点
                        (父节点才有权限删除子节点,故需要先找到该节点的父节点,再删除该节点)
例:var delNode=document.getElementById("first");
    delNode.parentNode.removeChild(delNode);

replaceChild(newNode,oldNode)属性attr 	用其他的节点替换指定的节点
例:var oldNode=document.getElementById("second");
    var newNode=document.createElement("img");
    newNode.setAttribute("src","images/f03.jpg");
    oldNode.parentNode.replaceChild(newNode,oldNode);

4.操作节点样式
1.style属性
HTML元素.style.样式属性="值"

例:document.getElementById("titles").style.color="#ff0000"; 
    document.getElementById("titles").style.fontSize="25px";

onclick             当用户单击某个对象时调用事件
onmouseover         鼠标移到某元素之上
onmouseout          鼠标从某元素移开
onmousedown         鼠标按钮被按下

2.className属性
HTML元素.className="样式名称"

例:function over(){
     document.getElementById("cart").className="cartOver";
     document.getElementById("cartList").className="cartListOver";
     }
    function out(){
     document.getElementById("cart").className="cartOut";
     document.getElementById("cartList").className="cartListOut";
     }

3.获取元素的样式
HTML元素.style.样式属性;

例:alert(document.getElementById("cartList").display);

document.defaultView.getComputedStyle(元素,null).属性;

例:var cartList=document.getElementById("cartList");
    alert(document.defaultView.getComputedStyle(cartList,null).display);

HTML元素. currentStyle.样式属性;

例:alert(document.getElementById("cartList").currentStyle.display);

5.HTML中的元素属性
offsetLeft            返回当前元素左边界到它上级元素的左边界的距离,只读属性
offsetTop             返回当前元素上边界到它上级元素的上边界的距离,只读属性
offsetHeight          返回元素的高度
offsetWidth           返回元素的宽度
offsetParent          返回元素的偏移容器,即对最近的动态定位的包含元素的引用
scrollTop             返回匹配元素的滚动条的垂直位置
scrollLeft            返回匹配元素的滚动条的水平位置
clientWidth           返回元素的可见宽度
clientHeight          返回元素的可见高度

应用
1.标准浏览器
document.documentElement.scrollTop;
document.documentElement.scrollLeft;

2.Chrome
document.body.scrollTop;
document.body.scrollLeft;

例:var sTop=document.documentElement.scrollTop||document.body.scrollTop;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值