• JavaScript操作DOM对象


    1.DOM操作分类(三类):
    (1)DOM Core(核心)
    (2)HTML-DOM
    (3)CSS-DOM

    2.节点的定义:
    (1)整个文档是一个文档节点
    (2)每个HTML标签是一个元素节点
    (3)包含在HTML元素中的文本是文本节点
    (4)每个HTML属性是一个属性节点
    (5)注释属于注释节点

    3.访问节点:
    借点属性:
    parenNode: 返回节点的父节点
    childNodes: 返回子节点集合,childNodes[i]
    firstChild: 返回节点的第一个子节点
    laseChild: 返回节点的最后一个子节点
    nextSibling: 下一个节点
    previousSibling: 上一个节点

    例:var div1=document.getElementById("div1");
    //div1.parentNode.innerHTML

    innerHTML:获取文本信息

    注:对于不同的浏览器,有可能空格,注释,回车,标签,都是节点
    为了解决浏览器兼容问题
    使用element属性:

    firstElementChild: 返回节点的第一个子节点
    laseElementChild: 返回节点的最后一个子节点
    nextElementSibling: 下一个节点
    previousElementSibling: 上一个节点

    4.节点信息:
    nodeName: 获取节点的名称
    nodeValue: 获取节点的值
    nodeType: 节点类型

    节点名称,值,类型的信息如下:

    节点的类型 获取节点的名称(nodeName) 获取节点的值(nodeValue) 获取节点的类型(nodeType)
    元素(element) 标签名 null 1
    属性(attr) 属性名 属性值 2
    文本(text) #text 文本内容 3
    注释(comment) #comment 注释内容 8
    文档(document) #document null 9

    例: div1.nodeName 元素节点:标签名
    //div1.firstElementChild.firstChild.nodeName 文本节点:#text
    //div1.firstElementChild.getAttributeNode("style").nodeName 属性节点:属性名

    5.操作节点的属性:
    getAttribute("属性名"); 用来获取属性的值

    例:var str=arr[0].getAttribute("type");

    setAttribute("属性名","属性值"); 用来设置属性的值

    例:var img1=document.getElementsByTagName("img")[0];
    img1.setAttribute("src","images/dd_logo.jpg");

    6.创建和插入节点:
    createElement(tagName) 创建一个标签名为tagName的新的元素节点
    A.appendChild(B) 把B节点追加至A节点的末尾
    insertBefore(A,B) 把A节点插入到B节点之前
    cloneNode(deep) 复制某个指定的节点 注:deep为布尔值,为true时,则赋复制该节点以及该节点的所有子节点 , 为false时:只复制该节点和其属性

    例: /*img1.setAttribute("src","images/shoppingBg.jpg");*/
    div1.insertBefore(div2,div1.firstChild);//在子元素前置插入

    7.删除和替换节点:
    removeChild(node) 删除指定节点
    replaceChild(newNode,oldNode) 用其他的节点替换指定节点

    例:obj.parentNode.removeChild(obj.previousElementSibling);//删除
    例: var img1=document.createElement("img");
    img1.setAttribute("src","images/shoppingBg.jpg");
    obj.parentNode.replaceChild(img1,obj.previousElementSibling);//替换

    8.操作节点的样式:
    (1)style属性:
    语法:HTML元素.style.样式属性="值";

    注:凡是有例如font-size中间有 "-"的,后面首字母大写 例:font-size 写为:fontSize;

    例:obj.firstElementChild.style.display="block";//给指定元素添加style属性值

    (2)className属性:
    语法:HTML元素.className="样式名称";

    例:
    #div1 .a{ display: block; }//先创建样式
    obj.firstElementChild.className="a";//给指定元素添加类样式

    9.常用的鼠标事件:
    onclick: 当用户点击某个对象是调用的事件
    onmouseover: 鼠标移动到某个元素上
    onmouseout: 鼠标从某元素移开
    onmousedown: 鼠标按钮被按下

    10. 获取元素的样式:
    语法:HTML元素.style.样式属性; (只能获取行内样式)
    HTML元素.currentStyle.样式属性; (只能为IE浏览器)
    document.defaultView.getComputedStyle(元素,null).属性 (IE不支持)

    例: // alert(document.defaultView.getComputedStyle(obj.firstElementChild,null).display);

    11.获取元素的位置:

    HTML中元素的常见的属性如下:
    offsetLeft: 返回当前元素左边界到它上级元素的左边界到的距离,只读属性
    offsetTop: 返回当前元素上边界到它上级元素的上边界到的距离,只读属性
    offsetHeight: 返回元素可见高度(包含边框)
    offsetWidth: 返回元素可见宽度
    offsetParent: 返回元素的便宜容器,及最近的动态定位的包含元素的引用
    scrollTop: 返回匹配元素的滚动条的垂直位置
    scrollLeft: 返回匹配元素的滚动条的水平位置
    clientWidth: 返回元素的可见宽度(不包括边框)
    clientHeight: 返回元素的可见高度

    语法:document.documentElement.scrollTop;//获取当前滚动条距离顶端的偏移量
    document.documentElement.scrollLeft;//获取当前滚动条距离左端的偏移量

    或者:document.body.scrollTop;
    document.body.scrollLeft;

    (以上两种方式都可以获取滚动条距离上端和左端的距离,但有的浏览器不兼容某一种方法,所以建议写成一下方法)
    var sTop= document.documentElement.scrollTop || document.body.scrollTop;





  • 相关阅读:
    用纯CSS改变下拉列表Select框的默认样式
    前端JS来控制选中的项
    Display:table;妙用,使得左右元素高度相同
    服务器与浏览器缓存协商控制机制的总结
    浏览器缓存机制
    高性能网站建设指南总结
    主题:关于CSS细节集合(一)
    [译] 关于CSS中的float和position
    常用前端开发工具合集
    [JavaScript忍者系列] — CSS选择符引擎入门
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/9825334.html
Copyright © 2020-2023  润新知