JavaScript学习笔记之DOM操作(上)

一. DOM基础
1.定义
       HTML DOM即Document Object Model for HTML,通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。
 
       HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。
2.DOM节点

<body>
    <ul id="ul1">
        <li>
           <span>fjkgh</span>
        </li>
        <li></li>
    </ul>
</body>  //上面代码:li是ul的子节点,body是ul的父节点

*子节点《==========================================》父节点

*children获取子节点                       parentNode获取父节点,offsetParent获取元素用来定位的父级

*首尾节点

firstChild(低版本浏览器)/firstElementChild(高版本浏览器):获取第一个子节点

lastChild(低版本浏览器)/lastElementChild(高版本浏览器):获取第一个子节点

3.操作元素属性

方法一: oTxt.value='dfhgkhda';

方法二: oTxt['value']='jflkjgla';

方法三:Dom方式

获取:getAttirbute(名称)    设置:setAttribute('名称','值')         删除:removeAttribute(名称)


二.DOM操作

1.创建Dom元素

createElement(标签名)创建一个节点

appendChild(节点)追加一个节点

例子:文本输入后,点击按钮久创建一个内容是输入文本的li

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的DOM知识</title>
    <script>
        window.onload =function(){
            var ouL = document.getElementById('ul1');
            var tex = document.getElementById('tex1');
            var oBtn = document.getElementById('btn1');
            oBtn.onclick=function(){
                //添加元素
                var oLi=document.createElement('li');
                oLi.innerHTML=tex.value;
                //父级.appendChild(子节点)
                ouL.appendChild(oLi);
            };
        };
    </script>
</head>
<body> 
    <input id="tex1" type="text"/>
    <input id="btn1" type="button" value="船舰li"/>
    <ul id="ul1">

    </ul>
</body>
</html>

2.插入元素

insertBefore(节点,原有节点)

例子:倒序插入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的DOM知识</title>
    <script>
        window.onload =function(){
            var ouL = document.getElementById('ul1');
            var tex = document.getElementById('tex1');
            var oBtn = document.getElementById('btn1');
            oBtn.onclick=function(){
                //添加元素
                var oLi=document.createElement('li');
                var aLi=ouL.getElementsByTagName('li');
                //给li加内容
                oLi.innerHTML=tex.value;  
                if(aLi.length>0){
                    //父级.insertBefore(节点,原有节点)---->往前面排
                    ouL.insertBefore(oLi,aLi[0]);
                }else{
                    //父级.appendChild(子节点)---->往后面排
                    ouL.appendChild(oLi);
                }
            };
        };
    </script>
</head>
<body> 
    <input id="tex1" type="text"/>
    <input id="btn1" type="button" value="船舰li"/>
    <ul id="ul1">

    </ul>
</body>
</html>

3.删除元素

父级.removeChild(子节点)删除一个节点

例子:点击a标签删除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的DOM知识</title>
    <script>
        window.onload =function(){
            var ouL = document.getElementById('ul1');
            var oA = document.getElementsByTagName('a');
            for(var i=0;i<oA.length;i++){
                   oA[i].onclick=function(){
                       ouL.removeChild(this.parentNode);
                   }
            }
        };
    </script>
</head>
<body> 
    <ul id="ul1">
        <li>hkghkhjfk <a href="javascript:;">删除</a></li>
        <li>hkghkhjfk <a href="javascript:;">删除</a></li>
        <li>hkghkhjfk <a href="javascript:;">删除</a></li>
        <li>hkghkhjfk <a href="javascript:;">删除</a></li>
        <li>hkghkhjfk <a href="javascript:;">删除</a></li>
    </ul>
</body>
</html>

4.文档碎片

文档碎片可以提高DOM操作性能,主要针对低级浏览器,高级浏览器用处不大,

创建文档碎片document.creatDocumentFragment

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的DOM知识</title>
    <script>
        window.onload =function(){
            var ouL = document.getElementById('ul1');
            var oFrag=document.createDocumentFragment();
            for(var i=0;i<1000;i++){
                var oLi=document.createElement('li');
                oFrag.appendChild(oLi);
            }
            ouL.appendChild(oFrag);
        };
    </script>
</head>
<body> 
    <ul id="ul1">
    </ul>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值