美文网首页
DOM整理2

DOM整理2

作者: 喵小姐猫猫 | 来源:发表于2016-06-12 01:39 被阅读32次

    文档中的元素都是Element类型的对象

    Element类型的对象,通过原型继承自Node.prototype。

    所以,Node类型是Element类型的父类型

    Node类型定义的属性和方法,所有Element对象都具备:

    比如:nodeName,nodeType,nodeValue

    再比如:firstChild,lastChild,childNodes等

    Element类型,除从Node类型继承了所有节点公共的属性和方法外,还扩展了专门操作元素节点的属性和方法

    元素节点与普通节点的不同,是元素节点可以有特性(Attribute)和内容(innerHTML)

    由Element类型提供的所有元素对象共有的属性和方法,也称为核心DOM

    核心DOM和HTMLDOM

    在HTML文档中,,所有和HTML元素又是HTMLElement类型的对象,是Element的子类型,所以,Element类型提供的属性和方法,HTML元素都可以使用。

    扩展简化

    id  title   style  className

    HTML内容获取和设置

    <p id="msg"><span>新华社消息</span> </p>

    var p=document.getElementById("msg");

    console.log(p.innerHTML)     //读取

    console.log(typeOf p.innerHTML)  //String类型

    p.innerHTML=<a>央视新闻</a>  //设置

    textContent用于读取或者设置元素节点中的文本内容   //子HTML标签会被剔除

    <p id="msg"><span>新华社消息</span></p>

    document.getElementById("msg");

    console.log(p.textContent);    //读取

    console.log(typeOf p.textContent);   //String

    p.textContent="来自央视的新闻"   //设置    IE8版本以下不支持textContent

    nodeValue和textContent

    元素的属性

    读取属性 可以通过以下几种方法读取元素属性值

    element.attributes[下标].value

    element.attributes["属性名"]

    element.getAttribute("属性名")

    element.getAttribute("属性名").value

    修改属性

    element.setAttribute(name,value)   //IE8版本以下不支持

    element.setAttributeNode(attrNode);

    移除属性

    element.removeAttribute("属性名")

    element.removeAttributeNode9(attrNode);

    判断属性

    element.hasAttribute('属性名')   //判断 是否拥有该属性 返回ture或者false

    element.hasAttribute()      //判断是否拥有属性

    元素的样式

    HTML中定义样式,三种方法:1. 内联样式: style=“xxx:xxx;xxx:xxx…”2. 内部样式表:3. 外部样式表:

    属性名:style对象中的属性名都是将CSS中样式属性名去横线,变驼峰后的结果,比如:

    CSS中: background-color  、  list-style-type

    style对象中:backgroundColor 、listStyleType

    获取或设置元素的内联样式

    获取     elem.style.属性名    //所有属性返回字符串类型

    设置     elem.style.属性名=值    //值也是字符串类型

    强调:在浏览器标准模式下,带单位的属性值设置时,必须加单位,取值时也会返回带单位的值。

    如何获取到最终影响多大当前元素的所有样式属性?

    DOM:[document.defautView.]getComputeStyle(元素对象)

    IE:对象元素.currentStyle属性

    返回的结果都是CSSStyleDeclaration对象。

    读取属性时和style对象一样,但不能改!

    只能通过元素.style.属性名方式,设置内联样式,利用优先级高的特点,覆盖其它样式表中的样式。

    修改样式表中的样式

    第一步:现获取包含属性的样式表对象

    var sheet=document.styleSheet[i];

    第二步:获取样式表中所有规则的集合

    var rules=sheet.cssRules//sheet.rules;

    第三步:获取规则集合中包含目标属性的规则

    var rule=rules[i];

    获取或设置规则集合中的目标属性

    rule.style.属性名

    相关文章

      网友评论

          本文标题:DOM整理2

          本文链接:https://www.haomeiwen.com/subject/clsedttx.html