博主信息
博文 7
粉丝 0
评论 0
访问量 4776
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
【0117】JavaScript中的dom操作 ToDoList练习
小包子的博客
原创
988人浏览过

总结:

1、在js操作dom中首先要理解文档树和节点的概念,对dom的操作就是对节点的操作(增加、删除、修改),如何正确的选择到要操作的节点就很重要。

2、this作为实参代表的是当前元素,所以还要通过this查找父节点。

3、“键盘敲烂,月薪过万”还是要多练习,看视频和自己写真是一个天一个地。

问题:

parentNode和parentElement的区别?

childNodes和children的区别?

思考:

1、本次练习中模仿qq对话框设置了一个“用enter发送”和“用ctrl+enter”快捷键发送,那么可否设置一个自定义配置快捷键来发送呢(试了几次,除了在程序里面写死快捷键,不知道还有什么方法可以自定义)

2、这个练习如果用面相对象该如何写?


实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ToDoList</title>
    <style>
*{padding: 0; margin: 0;}
ul,ol,li {list-style: none;}
.clearfix{zoom: 1;}
.clearfix:after{content:' '; display: block; clear: both; line-height: 1px; height: 0;}
.wrap {width: 500px; margin: 0 auto; }
.wrap h1{background-color: #ffffff;}
.list-ul {padding: 20px; border: 1px solid #ddd; clear: both; background: rgb(245,245,245); margin-bottom: 20px;height: 200px; overflow-y: scroll;}
.list-ul li {width: 100%; text-align: right;margin-bottom: 20px; position: relative;}
.list-ul li p{width: 50%; background: rgba(152,225,106,1); box-sizing: border-box; padding: 10px;color: #333; position: relative; display: inline-block; text-align: left; z-index: 100; border-radius: 4px;}
.list-ul li p::after{content: ' '; display: block; background: rgba(152,225,106,1); position: absolute; width: 20px; height: 20px; right: -5px; top: 10px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); transform: rotate(45deg); z-index: -1;
}
.list-ul li a{ font-size: 12px; text-decoration: none; color: #333333; position: absolute; bottom:-20px; right: 0; width: 40px;}
.list-ul li a:hover{color: #ff0000;}

.input_box {height: 18px; line-height: 18px; padding: 5px; width:360px;}
.select_box {height: 32px; line-height: 32px; padding: 5px; vertical-align: top;}
        </style>
</head>
<body>
    <div class="wrap"> 
        <h1>toDoList</h1>
        <ul class="list-ul clearfix">
            <li>
                <p>来说点什么吧</p>
                <a href="javascript:;" onclick="del(this);">删除</a>
            </li>
        </ul>
        <input type="text" name="input_box" class="input_box" id="input_box" value="">
        <select class="select_box">
            <option value="1" selected>Enter发送</option>
            <option value="2">Ctrl+Enter发送</option>
        </select>
    </div>
<script>
    
    var input = document.getElementById('input_box');
    var ul = document.querySelector('.list-ul');
    var select = document.querySelector('select');
    input.focus();

    input.onkeydown = function(event){
        if(select.value == 1)
        {
            if( !event.ctrlKey && event.keyCode === 13 )
            {
                send ();
            }
        }
        else if (select.value == 2)
        {
            if(event.ctrlKey && event.keyCode === 13)
            {
                send ();
            }
        }

        function send (){
            let li = document.createElement('li');
            let p = document.createElement('p');
            p.innerHTML = input.value;
            li.appendChild(p);
            li.innerHTML += '<a href="javascript:;" onclick="del(this)">删除</a>';

            if (ul.childElementCount === 0){
                ul.appendChild(li);
            } else {
                let first = ul.firstElementChild;
                ul.insertBefore(li,first);
            }

            input.value = ''; // 清空输入框
        }
    }

    function del (ele)
    {
        if (confirm('确定删除吗?'))
        {
            let li = ele.parentElement;
            li.parentElement.removeChild(li);
        }

    }
    
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学