javascriptDOM的基本操作

HTML DOM结构代码

    <ul id = "box">
        <li><input type="radio" name="color" id="color" value="green"/><label for="color">绿色</label></li>
        <li></li>
        <li></li>
    </ul>

获取节点

一、document

1、.getElementById
语法:document.getElementById(元素ID);
功能:通过元素ID获取节点
例:

    var oUl = document.getElementById("box");

2、 getElementByName
语法:document.getElementByName(元素name属性);
功能:通过元素name属性获取节点
例:

    var aInp = document.getElementsByName('color');

3、 gedElementByTagName
语法:document.getElementByTagName(元素标签);
功能:通过元素标签获取节点
例:

    var aLi = oUl.getElementsByTagName('li');

二、 节点指针

1、 firstChild || firstElementChild
语法:父节点.firstChild || 父节点.firstElementChild
功能:获取元素的首个子节点
例:

    var oFirLi = oUl.fistChild;  //IE下可以获得第一个li,非IE下通常会获得第一个文本节点#text,并不是li
    var oFirLi1 = oUl.firstElementChild; //IE下不兼容,非IE下可以获得第一个元素节点li

2、 lastChild || lastElementChild
语法:父节点. lastChild || 父节点. lastElementChild
功能:获取元素的最后一个子节点
例:

    var oLastLi = oUl.lastChild;  //IE下可以获得最后一个li,非IE下通常会获得最后一个文本节点#text,并不是li
    var oLastLi1 = oUl.lastElementChild; //IE下不兼容,非IE下可以获得最后一个元素节点li

3、 childNodes
语法:父节点. childNodes
功能:获取元素子节点列表
例:

    var aLi = oUl.childNodes; //IE下会获取3个li节点(ie不会为空白符或换行符创建一个文本节点),非IE下会获得7个节点(4个文本节点,3个元素节点li)

这里写图片描述
注:nodeType判断区分元素节点(返回值为1)和文本节点(返回值为3)

4、 previousSibling || previousElementSibling
语法:兄弟节点.previousSibling || 兄弟节点.previousElementSibling
功能:获取已知节点的前一个节点
例:

    var oLi1 = aLi[1].previousSibling;  //IE下可以获得li[0],非IE下通常会获得前一个文本节点#text,并不是li[0]
    var oLi1 = aLi[1].previousElementSibling; //IE下不兼容,非IE下可以获得前一个元素节点li

5、 nextSibling || nextElementSibling
语法:兄弟节点.nextSsibing || 兄弟节点.nextElementSibling
功能:获取已知节点的后一个节点
例:

    var oLi2 = aLi[1].nextSibling;  //IE下可以获得li[2],非IE下通常会获得后一个文本节点#text,并不是li[2]
    var oLi2 = aLi[1].nextElementSibling; //IE下不兼容,非IE下可以获得后一个元素节点li

6、 parentNode
语法:子节点.parentNode
功能:获取已知节点的父节点
例:

    var oUl1 = aLi[1].parentNode; //通过li获取ul 

操作节点

一、创建节点

1、 createElement
语法:document.createElement(元素标签)
功能:创建元素节点
例:

    var div = document.createElement("div"); //创建新div ,但并未加入DOM
    div.id = "myNewDiv";
    div.className = "box";
    console.log(div);//输出div的信息

2、 createAttribute
语法:document.createAttribute(元素属性)
功能:创建属性节点
例:

    var atrr = document.createAttribute("align"); //创建arr 
    attr.value = "left";
    console.log(attr);//输出align=left

注:属性节点特性就是存在于元素的attributes 属性中的节点,nodeType返回值为2
3、 createTextNode
语法:document.createTextNode(文本内容)
功能:创建文本节点
例:

    var txt = document.createTextNode("123"); //创建文本节点 
    console.log(txt);//输出123

4、createDocumentFragment
语法:document.createDocumentFragment()
功能:创建文档片段
例:

    var fragment = document.createDocumentFragment(); 
    //文档片段不占资源,可以包含和控制节点,nodeType返回值为11,作为一个“仓库”来使用,即可以在里面保存将来可能会添加到文档中的节点

二、 插入节点

1、 appendChild
语法:appendChild(所添加的新节点)
功能:向节点的子节点末尾添加新的子节点
例:

    var oLi = document.createElement("li");
    oLi.id = "newLi";
    oUl.appendChild(oLi);

2、 insertBefore
语法:insertBefore(所要添加的新节点,已知子节点)
功能:在已知的子节点前插入一个新的子节点
例:

    var oLi2 = document.createElement("li");
    inserBefore(oLi2,oLi); //在id为newLi的li前插入一个li

三、 替换节点

replaceChild
语法:replaceChild(要插入的新元素,将被替换的旧元素)
功能:将某个子节点替换为另一个
例:

    var oLi3 = document.createElement("li");
    replaceChild(oLi3,oLi);// 替换id为newLi的li

四、 复制节点

cloneNode
语法:需要被复制的元素.cloneNode(true/false)
功能:创建指定节点的副本
参数:true—-复制当前节点及其所有子节点
false—-仅复制当前节点
例:

    oUl.cloneNode(true); //复制ul及其所有li
    oUl.cloneNode(false);//只复制ul

五、 删除节点

1、removeChild
语法:removeChild(要删除的节点)
功能:删除指定节点
例:

    oUl.removeChild(aLi[1]);//删除第2个li

2、remove
语法:remove()
功能:删除所有子节点,无参
例:

    oUl.remove();//删除所有li

属性操作

一、 获取属性

getAttribute
语法:元素节点.getAttribute(元素属性名)
功能:获取元素节点中指定属性的属性值
例:

    var oInp = document.getElementById('color');
    console.log(oInp.getAttribute('name'));//color

二、 设置属性

setAttribute
语法:元素节点.setAttribute(属性名,属性值)
功能:创建或改变元素节点的属性
例:

    var oInp = document.getElementById('color');
    oInp.setAttribute('value','red')
    console.log(oInp.getAttribute('value'));//red

三、 删除属性

removeAttribute
语法:元素节点.removeAttribute(属性名)
功能:删除元素中的指定属性
例:

    var oInp = document.getElementById('color');
    oInp.removeAttribute('value')

文本操作

1、 insertData(offset,string) 从offset指定的位置插入string
2、 appendData(string) 将string插入到文本节点的末尾处
3、 deleteData(offset,count) 从offset其删除count个字符
4、 replaceData(off,count,string) 从off将count个字符用string代替
5、 splitText(offset) 从offset起将文本节点分成两个节点
6、 substring(offset,count) 返回由offset起的count个节点
例:

<ul id = "box">
    <li></li>
    <li></li>
    <li></li>
    <p>0123456789</p>
</ul>
    var oUl = document.getElementById("box");
    var oP = oUl.getElementsByTagName('p')[0];
    var txt = oP.firstChild;
    txt.insertData(2,'abc'); //'01abc23456789'
    txt.appendData('abc'); //'01abc23456789abc'
    txt.deleteData(2,3); //'0123456789abc'
    txt.replaceData(2,3,'abc'); //'01abc56789abc'
    var newTxt=txt.splitText(2); 
    console.log(txt)//'01'
    console.log(newTxt)//'abc56789abc'
    var newTxt2 = newTxt.substringData(3, 5);
    console.log(newTxt2);//'56789'
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值