zoukankan      html  css  js  c++  java
  • js获取节点和编辑的方法

    创建新节点

    1.创建一个DOM片段
    createDocumentFragment()

    例如:

    1 var d=document.createDocumentFragment();
    2 d.appendChild(document.getElementsByTagName("LI")[0]);

    2.创建一个具体的元素
    createElement() 

    例如:

    1 document.createElement("input");

    3.创建一个文本节点
    createTextNode() 

    例如:

    1 document.createTextNode("Water")

    添加、移除、替换、插入

    1.添加子节点

    appendChild()

    1 var node=document.createElement("LI");
    2 var textnode=document.createTextNode("Water");
    3 node.appendChild(textnode);
    4 document.getElementById("myList").appendChild(node);

    2.移除子节点

    removeChild()

    1 var list=document.getElementById("myList");
    2 list.removeChild(list.childNodes[0]);

    3.替换子节点

    replaceChild()

    1 var textnode=document.createTextNode("Water");
    2 var item=document.getElementById("myList").childNodes[0];
    3 item.replaceChild(textnode,item.childNodes[0]); //前面参数是新的节点,后面的是要被取代的节点

    4.插入子节点

    insertBefore()

    1 var newItem=document.createElement("LI")
    2 var textnode=document.createTextNode("Water")
    3 newItem.appendChild(textnode)
    4 var list=document.getElementById("myList")
    5 list.insertBefore(newItem,list.childNodes[0]); //前面参数是新的节点,后面的是要插入节点的位置

    JQ的动态添加元素方法:

    1.append() 方法在被选元素的结尾插入内容。

    2.prepend() 方法在被选元素的开头插入内容。

    3.after() 方法在被选元素之后插入内容。

    4.before() 方法在被选元素之前插入内容。

    从document查找

    1.document.getElementById()

    靠id获取节点

    2.document.getElementsByClassName()

    靠类名获取节点集(数组)

    3.document.getElementsByTagName()  IE9+才兼容~~

    靠标签名获取节点集(数组)

    4.document.createElement()

    创建新的节点

    5.document.querySelector()

    靠CSS选择符获取节点

    6.document.querySelectorAll()

    靠CSS选择符获取节点集(数组)

    查找父节点

    node.parentNode 和 node.parentElement 

    直接获取父层元素两者是一样的,前者是w3c标准。

    node.offsetParent:相对于哪元素定位,就是哪个元素

    查找子节点

    node.childNodes 获取所有子节点,包括了注释

    node.children 获取所有子元素(有标签的才算!!)

    查找兄弟节点

    node.previousSibling 获取前一位兄弟节点,包括了注释

    node.nextSibling 获取后一位兄弟节点,包括了注释

    node.previousElementSibling  获取前一位兄弟元素(有标签的才算!!)

    node.nextElementSibling  获取前一位兄弟元素(有标签的才算!!)

    判断node种类:node.nodeType  1->telement 3->text 8->tcomment

    获取元素节点后,可以用之前提到过的点表示法方括号表示法编辑操作元素节点的属性(id、src、className、style、offsetTop、offsetWidth、clientWidth、scrollWidth....)和内容(innerHTML、outerHTML、innerText、textContent、childNodes、appendChild、removeChild....)。

    值得注意的是操作样式的写法:

    1.第一种是  node.style.样式名  的写法:例如div.style.height="100px"(比较特别的:有-的样式名如div.style.backgroundColor,浮动div.style.cssFloat)

    2.第二种是  node.style.cssText  的写法:例如div.style.cssText="display:block;100px;height:100px"

    ps:还有一种获取实际浏览器计算出来的样式,例如 getComputedStyle(div[,'::after']).color

  • 相关阅读:
    VC(VISUAL_C++)虚拟键VK值列表
    关于新一轮QQ Tencent://Message 在线联系
    (记录) sql exists 应用及 order by注意点
    (记录)IE8 ..样式错乱解决
    jquery 关于ajax 中文字符长度过长后不执行
    DataList 嵌套绑定CheckBoxList [记录, 以免忘记哈.]
    (记录)MSSQL 的一些应用 查询数据统计适用 添加月份日号作为行记录
    数据结构回顾算法
    Modeling Our World笔记
    数据结构2数组
  • 原文地址:https://www.cnblogs.com/amiezhang/p/6752972.html
Copyright © 2011-2022 走看看