博主信息
博文 40
粉丝 1
评论 0
访问量 40126
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
TodoList的实战——2019年1月17日
李明伟的博客
原创
715人浏览过

Todolist的实战(微博,聊天框等的基本原理构造)

    第一步——构建DOM结构

<h3>请留言</h3>
<input type="text">
<ul></ul>

    第二步——获取input与ul的结点(附带光标的聚焦)

var comment = document.querySelector('input'); //获取input的结点
var ul = document.getElementsByTagName('ul')[0]; //获取ul的结点
comment.focus();//光标的聚焦

    第三步——检测键盘输入的是否是回车(或自定义的提交按键)

comment.onkeydown = function (event) {
if (event.keyCode === 13)

    第四步——创建一个新的li结点,并给其赋值

var li = document.createElement('li'); //生成新的li结点
li.innerHTML = comment.value;

    第五步——判断是否是第一条聊天信息

if (ul.childElementCount === 0) {

    第六步——

            1.如果是第一条,直接将li作为子元素添加给ul

ul.appendChild(li);

            2.如果不是,获取第一条的结点,将现在的li的结点插入到它的前面

var first = ul.firstElementChild; //ul下第一个子元素的结点
ul.insertBefore(li, first);

    第七步——清空数组,重新进行光标聚焦

comment.value = "";
commemt.focus();// comment.value = "";//清空input中的值

实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>

<body>
    <h3>请留言</h3>
    <input type="text">
    <ul></ul>
</body>

</html>
<script>
    var comment = document.querySelector('input'); //获取input的结点
    var ul = document.getElementsByTagName('ul')[0]; //获取ul的结点
    comment.focus();
    comment.onkeydown = function (event) {
        if (event.keyCode === 13) {
            var li = document.createElement('li'); //生成新的li结点
            li.innerHTML = comment.value+"<a href='javascript:;' onclick='del(this)'>删除</a>";
            //执行一段空白的javascript语句,返回空或者false值,从而防止链接跳转。跟当前a标签无关,这段代码始终都会执行。
            //如果按的是回车
            //Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
            if (ul.childElementCount === 0) {
                ul.appendChild(li);
            } else {
                var first = ul.firstElementChild; //ul下第一个子元素的结点
                ul.insertBefore(li, first);
            }
            comment.value = "";
            commemt.focus();// comment.value = "";//清空input中的值
        }
    }

    function del(eve) {
        if(confirm('是否删除?'))
        {
            // 获取要删除的元素
            var li = eve.parentNode;//获取父结点
            //一定要在被删除元素的父结点上调用
            li.parentNode.removeChild(li);
        }
        return false;
    }
</script>

运行实例 »

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


总结:涉及到大量的函数,需要记忆.

所用函数:变量名.querySelector('标签名')//用css的方式获取该类标签的第一个元素的结点

                 变量名.getElementsByTagName('标签名')//获取一个数组,其中的所有元素是该类标签的结点

                 变量名.focus()//光标聚焦

                 变量名.onkeydown//设置键盘按下的事件

                 事件(event)//Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标                     按 钮的状态。

                 事件.keyCode//字符数字键的键码值

                 变量名.creatElement('标签名')//生成一个新该类标签的结点   

                 标签.childElementCount//获得该标签下的子结点

                 父标签.apendchild(标签名)//在父标签下生成子标签

                 父标签.firstElementChild//取父标签下的第一个子结点

                 父标签.insertBefore(插入的标签内容,选择的结点)//将所需内容插入结点位置

                  结点.parentNode//获取当前结点的父结点

                  结点.childNode//获取当前结点的子结点

                 父结点.removeChild(子结点)//移除当前父结点下的子结点





批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学