JS节点操作

DOM

   作用:

       1.DOM(document object modern)   html xml(标记语言)

   2.Object对象[html的元素转成的JS对象]

         Eg:如果用js操作html文档,先要将html转成js对象

  1. 操作属性

DOM自带的属性如<a href=”” title=”” target=”_blank”>link</a>

  1. 操作内容

InnerText:操作内部的文本,任何标签只当做文本处理

兼容性:innerText(IE) textContent(FF)

InnerHTML(荐):可带标签格式

兼容性:可同时兼容IE与FF

outText 取元素外围一层的内容(含自身)

outHTML取元素外围的标签

表单内容:

  value

  1. 操作样式

obj.style.textDecoration="none";

obj.style.fontSize="14";

obj.style.color="#000";

操作多个样式用

Obj.className=”stylename”

Obj.className=”style1 stle2”

Obj.className=””//清空类

Obj.classList.add(“类名”)

Obj.classList.remove(“类名”)

Obj.classList.toggle(“类名”)

Obj.classList.hasClassName(“类名”)

以上三点的操作,需要将标记转成对象

转成对象的两种形式

  1. 通过标记名(找多个)、ID(唯一)、name(多个)

Document中找到对象的三个方法

  1. Var objs=document.getElementsByTagName(div);

getElementsByTagName() 方法返回节点列表。节点列表是一个节点数组

例如:var obj=document.getElementsByTagName("p");

  y=obj[1];

  1. Var objs=document.getElementById(“one”);

获取的是拥有唯一的ID名称的DOM元素

例如:var obj=document.getElementsById("one");

  Alert(obj.innerHtml)

  1. Var objs=document.getElementByName(“two”)

getElementsByName() 方法可返回带有指定名称的对象的集合

  1. Document.form[i].name(表单)
  2. Document.formname.name(表单)

3.关于dom节点

  说明:

父节点、子节点和同胞节点

节点树中的节点彼此拥有层级关系。

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

在节点树中,顶端节点被称为根(root)

每个节点都有父节点、除了根(它没有父节点)

一个节点可拥有任意数量的子

同胞是拥有相同父节点的节点

:为保证兼容性,书写html的时候必须写成一行

  4. nodeType属性

   nodeType 属性返回节点的类型。nodeType 是只读的。

   比较重要的节点类型有:

       

     如:

       Var div=document.getElementById(“div”);                     

       div.nodeType                                  节点的类型

   div.nodeName /div.tagName                      节点的名字

   *div.firstchild.nodeValue*             先获取节点的子节点后再求值(文本)                    

      div.parentNode.nodeType/nodeName/nodeValue        父节点的……       

   div.childNodes[0].nodeType/nodeName/nodeValue     第一个子节点的……   

      div. firstChild. nodeType/nodeName/nodeValue        第一个节点的……    

      div.lastChild.nodeType/nodeName/nodeValue       最后一个子节点的……     

      div. nextSibling. nodeType/nodeName/nodeValue      下一个节点的……     

      div. previousSibling. nodeType/nodeName/nodeValue   上一个节点的……     

      div.childNodes.length                             子节点的个数

hasChildNodes()                 判断父节点是否有子节点

tagName = nodeName                                 [标签名/节点名]

       </script>

Nodevalue注意事项

<div id="div"><span>span</span><a>a</a></div>

    <script>

        var div=document.getElementById("div");

    alert(div.firstChild.firstChild.nodeValue);

   </script>

5.dom元素方法列表

     

  1. 创建节点:

使用createElement创建元素节点

使用createTextNode创建文本节点

document.body指向的是<body>元素

document.documentElement则指向<html>元素

如document.p[0]

   如:

    var createNode = document.createElement("div");

    var createTextNode = document.createTextNode("hello world");

    createNode.appendChild(createTextNode);

    document.body.appendChild(createNode);

    或document.documentElement.appendChild(createNode);


 

  1. 插入节点:

可以使用appendChild,insertBefore,

insertBefore接收两个参数,第一个是插入的节点,第二个是参照节点,如parentDOM.insertBefore(a,b),则a会插入在b的前面

//插入节点

     var newNode= document.createElement("div");

    var TextNode = document.createTextNode("hello world");

   newNode.appendChild(TextNode);

    var div1 = document.getElementById("div1");  //div1为参照节点

    document.body.insertBefore(newNode,div1);

 parentNode.insertBefore(newNode,oldNode)

 

  1. 替换和删除元素,

replaceChildremoveChild的字面意思看,就是删除子节点,因此调用者,需要包含子节点div1,不然调用会报错。返回的节点是替换的或删除的元素,被替换/删除的元素仍然存在,但document中已经没有他们的位置了。

 

//替换元素

 parentDOM.replaceChild(newNode,oldNode);

 

//删除元素

   parentDOM.removeChild(div1);


 

4属性相关操作

   4-1  getAttribute获取属性

        如: nodeDOM. getAttribute(“属性”);

   4-2  setAttribute设置属性

        如: nodeDOM. setAttribute (“属性”,”属性值”);

4-2  creatAttribute建立属性

        如:

          Var parentDOM=document.getElementById(“parent”);   //1获取元素节点

          var oAttr=document.createAttribute("class");          //2 建立属性节点--class

          oAttr.value="red";                                // 3 属性赋值

          parentDOM.setAttributeNode(oAttr);                // 4 将属性节点插入至元素节点

    4-3 删除属性removeAttribute

         parentDom.removeAttribute(“属性”)   //删除属性的同时删除属性值

   5. cloneNode克隆

     Var oldNode=document.getElementById(“old”);

     Var newNode=oldNode.cloneNode(true);

     newNode.setAttribute(“属性”, “属性值”);

     var parentNode=document.getElementById(“parent”);

     parentNode.appendChild(newNode)

   6.remove

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值