你的位置:首页 > 软件开发 > Java > 从原型链看DOM--Element类型

从原型链看DOM--Element类型

发布时间:2016-04-02 22:00:04
Element类型用于表现以HTML元素为例:document.documentElement.__proto__->HTMLHtmlElement.prototype->HTMLElement.prototype->Element.prototype-> ...

从原型链看DOM--Element类型

Element类型用于表现以HTML元素为例:document.documentElement.__proto__->HTMLHtmlElement.prototype->HTMLElement.prototype->Element.prototype->Node.prototype->EventTarget.prototype从原型链看DOM--Element类型

 

Element节点实例有以下特征:以下特征均继承自Node.prototype

  • nodeType值为1
  • nodeName值为元素标签名
  • nodeValue值为null
  • parentNode可能是Document或Element
  • 其子节点可能是Element,Text,Comment,ProcessingInstruction,CDATASection,EntityReference

要访问元素标签名,可以用nodeName(继承自Node.prototype)属性也可用tagName(继承自Element.prototype)属性,这两个属性会返回相同的值。但注意返回的字符串是大写。在HTML中标签名始终以全部大写表示,而在

document.documentElement.tagName;// "HTML"document.documentElement.nodeName;// "HTML"document.documentElement.nodeName.toLowerCase();// "html"
从原型链看DOM--Element类型
  • removeNamedItem(str):移除一个属性节点,也会即时反映到文档的DOM树中(2).当然元素还能通过继承HTML某元素Element.prototype上的一些属性,比如input元素的HTMLInputElement.prototype上的disabled可以通过inputele.disabled取得或设置值。inputele.disabled;// false表示该元素未被设置disabled属性即未被禁用,inputele.disabled=true;// 表示为该元素设置不可用属性。

    从原型链看DOM--Element类型

    (3).HTML5规范对自定义特性做了增强,只要自定义特性以'data-attrName'形式写到html标签中(setAttribute或直接html代码存在均可),在DOM属性中就可通过ele.dataset.attrName形式访问自定义特性。(4).特性名是不区分大小写的,getAttribute('id')和getAttribute('ID')都代表同一个特性。并没有background特性值,可以看到不论通过哪个方式获得的结果都只有元素上style特性设置的属性才会出现。获得的集合中的属性只有已设置的才有值,其余的属性为空字符串即使它们都有默认值。简单学习下CSSStyleDeclaration接口:代表css键值对的集合,它在一些API中被使用

    • HTMLele.style 用于操作单个元素的样式(<ele >)
    • 在getComputedStyle中应用:CSSStyleDeclaration是window.getComputedStyle()返回的只读接口,其中每个键都有值,或被设置的值或默认的值。

    ele.style.cssText:声明块的文本内容,修改这个属性会直接将标签中的style特性内容改变。并且通过getAttribute访问仍得到的是标签上的特性值,且即使之前已经给onclick属性赋值了但控制台显示元素自身并没有这个属性。我不明白为什么document.body自身上会没有onclick属性,那当访问document.body.onclick时候去哪访问onclick的值,按着原型链吗?如果函数是在原型链上的onclick属性上也不应该啊HTMLElement.prototype.onclick=function(){console.log(2)}这样不就使这个方法成共享的了任何HTML元素实例都能访问,这显然不实际因为我们只想为某一元素设置某事件函数。对于document.body自身上会没有onclick属性不知道是不是JS引擎内部实现的,如果是那具体是怎么实现的?知道的盆友麻烦告知~

    document.body.getAttribute('onclick');// "(function(){console.log(1)})()"document.body.onclick;// function (){ console.log(2)}document.body.hasOwnProperty('onclick');// false
    IE5~8FF44.0.2 :如果需要通过childNodes属性遍历子节点,通常要先检查一下当前节点的nodeType属性。

    var ul=document.getElementById('myList');for(var i=0;i<ul.childNodes.length;i++){  if(ul.childNodes[i].nodeType==1){     //do else  }}


     

    海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

    原标题:从原型链看DOM--Element类型

    关键词:dom

  • dom
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。