喜迎
春节

JS的node节点


node节点(更详细的获取(设置)页面中所有的内容)

根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
元素是节点的别称,节点包含元素当然节点还有好多细化的种类;
根节点:root>>>>HTML没有父节点;
节点操作:(通过父子系关系)
childNodes 获取当前元素的所有子节点;
nodeType 节点种类,返回值是数字;
nodeValue 获取(文字)节点的文本内容;
nodeName 返回node节点名称(#text,注释, 标签….);
一个可以找出元素节点的方法;

常见的节点类型:

nodeType值:1 代表元素(DIV、BODY、LI、SPAN……. )
nodeType值:2 属性代表属性节点 (class,src,href)
nodeType值:3 文本节点(text节点)
nodeType值:8 代表注释节点
nodeType值:9 代表document节点;

innerHTML和nodeValue;(当innerHTML和nodeValue分别作为左值的时候)

box.innerHTML = 'abc';
box.childNodes[0].nodeValue = 'abc';

innerHTML会将标签解析;
nodeValue不会进行解析,会将标签名转译成字符串,直接输出;

outerHTML/innerText (非W3C)

attributes属性

var oBox = document.getElementById('box');
    console.log(oBox.attributes)                                      //  获取所有,该节点的属性信息;

    console.log(oBox.attributes.length);                          //返回属性节点个数
    console.log(oBox.attributes[0]);                                 //返回第一个属性节点
    console.log(oBox.attributes[0].nodeType);                //2,属性
    console.log(oBox.attributes[0].nodeValue);               //属性值
    console.log(oBox.attributes['id']);                              //返回属性为 id 的节点

    console.log(oBox.attributes.getNamedItem('id'));     // 获取 id 的节点;

attributes属性 一般只用作获取,设置使用setAttribute()

父(parent)、子(child)和同胞(sibling)

描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
childNodes 获取当前元素节点的所有子节点

firstChild 获取当前元素节点的第一个子节点

lastChild 获取当前元素节点的最后一个子节点

previousSibling 获取当前节点的前一个同级节点

nextSibling 获取当前节点的后一个同级节点
****以上五中方法都包含空白文本节点


firstElementChild   获取当前元素节点的第一个元素子节点

lastElementChild  获取当前元素节点的最后一个元素子节点

ownerDocument 获取该节点的文档根节点,相当于document

parentNode 获取当前节点的父元素

创建文档碎片createDocumentFragment();

var cache = document.createDocumentFragment();
for( var i = 0 ; i < 1000; i ++ ){
    var opt = document.createElement("input");
    opt.type="button";
    opt.value = "删除";
    cache.appendChild(opt);
}
document.body.appendChild(cache);

DOM尺寸和位置

DOM尺寸

box.style.width
box.style.height
只能获取到内联style属性的CSS样式中的宽和高,如果有,获取;如果没有,则返回空

getStyle(box,”width”)
getStyle(box,”width”)
//如下getStyle方法的封装
通过计算获取元素的大小,无关你是否是行内、内联或者链接,它经过计算后得到的结果返回出来。如果本身设置大小,它会返回元素的大小,如果本身没有设置,非IE浏览器会返回默认的大小,IE浏览器返回auto。

box.clientWidth
box.clientHeight
返回了元素大小,但没有单位,默认单位是px,如果设置了其他的单位,比如100em之类,返回出来的结果还会转换为px像素(不含边框)

box.scrollWidth
box.scrollHeight
获取滚动内容的元素大小(当元素出现滚动条时,此属性指全部滚动内容的宽高)
返回了元素大小,默认单位是px。如果没有设置任何CSS的宽和高度,它会得到计算后的宽度和高度

box.offsetWidth
box.offsetHeight
返回了元素大小,默认单位是px。如果没有设置任何CSS的宽和高度,他会得到计算后的宽度和高度
包含盒模型中除margin以外的宽高(包含边框)
最稳定,使用最频繁
以上这三对方法都是只读的
获取非行内样式(兼容问题)

function getStyle(obj,attr){    //获取非行间样式,obj是对象,attr是值
      if(obj.currentStyle){   //针对ie获取非行间样式
            return obj.currentStyle[attr];
      }else{
            return getComputedStyle(obj,false)[attr];   //针对非ie
      };
};

位置坐标

box.clientLeft
box.clientTop
获取左边框和上边框的宽度
box.offsetLeft
box.offsetTop
获取元素当前相对于offsetParent父元素的位置
box.scrollTop
box.scrollLeft
获取滚动内容上方的位置(就是隐藏的内容的高度)
获取滚动内容左方的位置

offsetParent 这个属性的返回值是它根据谁定位的,如果它的所有父元素都没有定位,那么返回body


文章作者: NekoDeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 NekoDeng !
评 论
 上一篇
JS事件
JS事件
JS运行和编译语法分析查找基本语法有没有错误 预解析执行之前进行预解析var、function关键字提前到当前作用域的顶部,变量默认值为undefined,函数默认值为函数体代码块,当函数与变量重名时,保留函数。 变量生命周期全局变量的生命
2020-07-15
下一篇 
JS的MATH和Date对象
JS的MATH和Date对象
什么是对象?对象的类型是Object。JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…javaScript中万事万物皆对象想要有对象怎么办? 创建对象:(创建两种方式:字面量和new运算符)1.New一个对象出来;va
2020-06-03
  目录