前端学习day15-DOM:appendChild问题,利用定时器制作跑马灯,开关的点击逻辑,封装函数得到当前时间,利用Math的max,min方法取数组的最值,querySel和getel区别

1.解决 利用appendChild方法追加同一个元素 只能追加一次的问题

        1.1将节点封装到函数里面,节点为局部变量,函数执行完会被释放

  var box = document.querySelector(".box");
        function insertEl(el,content){
            var element = document.createElement(el);
            element.innerText = content;
            box.appendChild(element);
        }

        insertEl("h2","我是内容");
        insertEl("h2","我是内容");
        insertEl("h2","我是内容");

        1.2克隆节点

        clone 克隆      node 节点

        参数为true时 才会拷贝一份新对象元素

                h3.cloneNode(true)

 var h3 = document.createElement("h3");
        h3.innerText = "我是h3 ===== ";
        box.appendChild(h3);
        box.appendChild(h3.cloneNode(true));
        box.appendChild(h3.cloneNode(true));

2.利用定时器制作跑马灯

颜色的表示法用rgb  用  [0~255)   随机数设置其值实现颜色效果

setinterval:interval 间隔   每隔时间单位执行一次回调函数 会一直执行

        p1:回调函数

        p2:时间间隔 单位ms

 var spans = document.querySelectorAll('span');

        function randomColor() {
            return Math.floor(Math.random() * 256);
        }
        setInterval(function () {
            for (const span of spans) {
                span.style.color = `rgb(${randomColor()},${randomColor()},${randomColor()})`;
            }
        }, 100);

3.开关的点击事件

           逻辑判断关键语句:   this.innerText = this.innerText == "开" ? "关" : "开";

 var main =  document.querySelector("main");

        main.onclick = function () {
            this.classList.toggle("change");
            this.innerText = this.innerText == "开" ? "关" : "开";
        }

4.JS实现下拉框

 获取下拉框选中的值  select.value 获得

 var select = document.createElement("select");

        var opt1 = document.createElement("option");
        opt1.innerText = "河南";
        opt1.value = "henan";
        select.appendChild(opt1);

        var opt2 = document.createElement("option");
        opt2.innerText = "河北";
        opt2.value = "hebei";
        select.appendChild(opt2);
        document.body.appendChild(select);


        // 获取下拉框选中的值  select.value 获得
        console.log(select.value);

5.封装函数得到当前时间

     利用date的API方法获取时间 再利用模板字符串和占位符进行拼接

    对小于10的数进行补零操作

  function addZero(num) {

            return num > 10 ? num : "0" + num;
        }
        function formatDate() {
            var date = new Date();
            var y = date.getFullYear();
            var m = date.getMonth() + 1;
            var d = date.getDate();
            var h = date.getHours();
            var mi = date.getMinutes();
            var s = date.getSeconds();
            return `${y}-${addZero(m)}-${addZero(d)}  ${addZero(h)} : ${addZero(mi)} : ${addZero(s)}`
        }
        document.write(formatDate());

6.利用Math的max,min方法取数组的最值-结合展开运算符

        var max = Math.max(...array);
        var min = Math.min(...array);

7.querySelectorAll和getElementsByTagName的区别

        querySelectorAll              得到的是静态数组

        getElementsByTagName        得到的是动态数组

 <ul>
        <li>111</li>
        <li>222</li>
    </ul>
    <script>
        var lis1 = document.querySelectorAll("li");
        var lis2 = document.getElementsByTagName("li");
        
        console.log(lis1);//NodeList [ li, li ]
        console.log(lis2);//HTMLCollection { 0: li, 1: li, length: 2 }

        document.querySelector("ul").innerHTML += "<li> 333333</li>";
        console.log("----------------------------------");
        console.log(lis1); // 得到时静态数组    //NodeList [ li, li ]
        console.log(lis2); // 得到动态的数组    //HTMLCollection { 0: li, 1: li, 2: li, length: 3 }
    </script>

        

目录

1.解决 利用appendChild方法追加同一个元素 只能追加一次的问题

2.利用定时器制作跑马灯

3.开关的点击事件

4.JS实现下拉框

5.封装函数得到当前时间

6.利用Math的max,min方法取数组的最值-结合展开运算符

7.querySelectorAll和getElementsByTagName的区别


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值