DOM-(Document Object Model)即文档对象模型。
JavaScript可以动态地修改DOM,从而来修改HTML的内容。


查找HTML元素

  • 通过 id 找到 HTML 元素

  • 通过标签名找到 HTML 元素

  • 通过类名找到 HTML 元素


设置样式总结:

  • className:用于为DOM元素直接添加一个样式类

  • style:用于为DOM元素添加某一个样式值,注意驼峰写法

  • styleText:用于为DOM元素一次添加多个样式


创建和增加节点:

  • createElement():创建节点

  • appendChild():末尾追加方式插入节点

  • insertBefore()在指定节点前插入新节点

  • cloneNode():克隆节点


相关练习代码:

动态添加内容

    <script type="text/javascript">
        window.onload = function() {
            var d = document.getElementById('d');
            //创建一个节点,里面是节点标签的名字
            //定义个变量,等于创建好的标签,然后在再向其中添加内容
            var a = document.createElement('a');
            a.href = '01.html';
            a.innerText = '添加的新内容';
            //添加元素到div里
            d.appendChild(a);
            //在指定节点前插入新的节点
            var p = document.createElement('p');
            //添加文本内容
            p.innerText = "这是被添加的内容";
//            d.appendChild(p);
            //参数1:要添加的元素,参数2:指定节点
            d.insertBefore(p,a);

            //克隆节点
            var span = document.getElementById(s);
            //克隆元素
            //cloneNode()有个参数,默认是false,修改为true,可以将原来的标签也克隆出来
            var spanc = span.cloneNode(true);
            d.appendChild(spanc);
        }
    </script>


<body>
<div id="d">
</div>
<span id="s">
    span标签内的内容
</span>
</body>

根据层次关系查找节点

<script>
    window.onload = function() {
        //通过id找到所需要的td
        var t1 = document.getElementById('t1');
        //获取父节点元素
        var tr = t1.parentNode;
        tr.style.backgroundColor = 'red';

        //获取子节点元素
        var tt3 = document.getElementById('tt3');
        tr.lastElementChild;
        tt3.innerText = 'blue';

        //前一个元素节点
        var t4 = t3.previousElementSibling;
        t4.innerText = "000000";

        //后一个元素节点
        var t5 = t4.nextElementSibling;
        t5.innerText = "XXXXXX";
    }
</script>


<body>
<table>
    <tr>
        <td id = "t1">1</td>
        <td id = "t2">2</td>
        <td id = "t3">3</td>
    </tr>
    <tr>
        <td id = "tt1">1</td>
        <td id = "tt2">2</td>
        <td id = "tt3">3</td>
    </tr>
</table>
</body>

设置样式

    <script type="text/javascript">
        window.onload=function(){
            /*            文档就绪函数*/
             var d = document.getElementById('d');
            //添加文本信息
/*            d.innerText = "添加文本信息";
            d.innerHTML = "可以直接添加文本信息,还可以添加标签";*/

            var abc = document.getElementsByName('abc');

            /*错误,ByName返回的是个数组,要通过数组来选取*/abc.href = "";

            /*ByName 通过数组下标得到对应元素*/
            abc[0].innerText = "修改原先的内容,改变文本信息";

            /*传递标签名字,给标签添加内容,该标签无ID,也无class属性*/
            var span = document.getElementsByTagName('span');
            span[0].innerText("添加的文本信息");

            /*通过className找对应元素*/
            var c =document.getElementsByClassName('c');
            for(var i = 0; i < c.length; i++){
                c[i].innerText = "把它原先的内容去改变";
            }

            /*属性是成对出现,属性名+属性方法*/
            document.getElementById("food").className = "fruit";
            document.getElementById("food").style.color = "red";
            document.getElementById("food").style.size = "20px";
        }
    </script>


<body>
<div id="d">
</div>
<a href="" name="abc">属性名字abc</a>
<span>
</span>
</body>