博客列表 >JQ微博添加删除-php线上班五期

JQ微博添加删除-php线上班五期

哥特的博客
哥特的博客原创
2019年04月04日 14:45:14701浏览

作业总结:

1 新知识点

.on()方法应用在被选定元素上添加一个或者多个事件 

.parents()查找指定元素的祖先元素 可以在括号内指定元素类名,

.prev()查找当前同级元素的上一个元素,括号内不用写内容

.parseInt() 解析一个字符串变量并返回一个整数js的函数

.find() 查找指定元素 比如  .find('.length')

$(document).on()  这个‘组合’是给当前文档 中选择的元素做处理,好处是避免全局其他的相同元素都跟着变化。

2 课程理解

  1. 获取并修改输入字数

    获取文本框的class名,使用.on方法在.on方法内部使用keyup事件并使用函数。函数体内先获取一下当前文本框内容的长度,并复制给新变量 len。找到当前文本框的祖先元素 .text-box,然后查找到字数计数的元素 .length,使用.text()函数让总字数140减去刚才的存放字数的变量 len 。

  2. 回复按钮的事件处理

    使用$(document).on是设置当前文档的回复按钮点击的方法。使用prev()找到当前元素(按钮)的同级上一个紧邻的兄弟元素(就是文本框)顺便获取一下内容并赋值给新变量 val。然后if判断一下获取到的val变量是否是空值if(val==0) 如果是空值就弹出警告框,如果不是空值就获取一下当前时间,并且把年月日等组合赋值给变量y。找到每次发布都相同的html代码,在新变量内部进行组合。把获取到的时间变量放到html内的时间标签内,把获取到的内容val变量放到发布的内容区内,最重要的一点是html变量内的值,也就是这些html代码之间不能有换行、空格,必须紧挨着放在一起。

    然后使用$(this).parents('.box').find('.comment-list').append(html),这句话的意思是查找到当前元素的祖先级元素 .box 然后从祖先级元素往下找,找到'.comment-list',在这个元素的最后面添加上修改组合后的变量 html。

    发布之后要清空输入框,同样是找到当前元素的祖先级元素 '.box' ,然后再使用find找到子元素'.comment' 使用val('')让内容为空(就是输入的文本框)

    发布之后要初始化输入的字数,同样是找到当前元素的祖先级元素 '.box',然后使用find找到子元素 .length,使用 .text('0') 让输入字数为0。

    设置一下输入框的高度,当前元素,也就是点击按钮的同级上一个元素(输入框)$(this).prev().height(20)

  3. 删除评论

    使用$(document).on('click','.comment-operate'),当前文本.comment-operate元素被点击的时候执行函数。如果if(confirm('确定删除吗')),这个if里面的是一个弹窗,确定表示为真,否为假。如果确定删除就执行找到当前元素的诛仙元素.comment-box,使用remove移出。

  4. 给评论框加高度

    使用$(document).on('click','.comment',function(){})当文档中的元素被点击的时候,这个元素的高度增加80像素

    $(document).on('click','.comment',function(){$(this).height(80)})

  5. 点赞功能

    使用$(document).on('click','.comment-praise',function(){}),在点击文档中的当前元素后执行函数,使用字符串转增数的函数parseInt把当前元素里的total值 +1 转整后赋值给变量 num,也就是$num = parseInt($(this).attr('total'))+1;使用 $(this).attr('total',num)修改当前的标签内total的值为获取到的num变量值。使用$(this).html(num+'赞'),刚才修改完标签内的total值后还需要修改前端的元素内容,让赞前面显示数字,数字就使用num。

  6. 删除动态(作业)

    使用$(document).on('click','.close'function(){})当点击当前文档里的'.close'元素后执行函数,函数体内是找到当前元素的祖先级元素.box,然后使用 .remove()进行删除。




实例

<!DOCTYPE html>
<html>
<head>
<title>评论功能练习</title>
<meta charset="utf-8">
<link rel="icon" type="image/x-icon" href="static/images/logo.png">
<link rel="stylesheet" type="text/css" href="static/style.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<div id="list">
    <div class="box clearfix">
<!-- 删除说说按钮 close-->
        <a class="close" href="javascript:;">×</a>
        <img class="head" src="static/images/1.png" alt="">
        <div class="content">
            <div class="main">
                <p class="txt">
                    <span class="user">西门大官人: </span>
                      ~ All the luck is for you. ~
                </p>
                <img class="pic" src="static/images/img1.jpg" alt="">
            </div>
            <div class="info clearfix">
                <span class="time">02-14 23:01</span>
<!-- 给说说点赞 praise -->
                <a class="praise" href="javascript:;">赞</a>
            </div>
            <div class="praises-total" total="4" style="display: block;">4个人觉得很赞</div>
<!--评论内容-->           
            <div class="comment-list">
           <!--   每次评论要添加的内容跟标签   -->
                <div class="comment-box clearfix" user="self">
                    <img class="myhead" src="static/images/4.jpg" alt="">
                    <div class="comment-content">
                        <p class="comment-text"><span class="user">我:</span>你说的都对……</p>
                        <p class="comment-time">
                            2019-01-19 14:36
                            <a href="javascript:;" class="comment-praise" total="1" my="0" style="display: inline-block">1赞</a>
                            <a href="javascript:;" class="comment-operate">删除</a>
                        </p>
                    </div>
                </div>
                <!--添加结束-->                                                           
            </div>
<!--评论内容结束--> 
            <div class="text-box">
                    <textarea class="comment" placeholder="评论…"></textarea>
                    <button class="btn">回 复</button>
                    <span class="word"><span class="length">0</span>/140</span>
            </div>                
        </div>            
    </div> 
                   
    <div class="box clearfix">
        <a class="close" href="javascript:;">×</a>
        <img class="head" src="static/images/2.jpg" alt=""/>
        <div class="content">
            <div class="main">
                <p class="txt">
                    <span class="user">欧阳克 : </span>三亚的海滩很漂亮。
                </p>
                <img class="pic" src="static/images/img5.jpg" alt=""/>
            </div>
            <div class="info clearfix">
                <span class="time">02-14 23:01</span>
                <a class="praise" href="javascript:;">赞</a>
            </div>
            <div class="praises-total" total="0" style="display: none;"></div>
            <div class="comment-list">
                <div class="comment-box clearfix" user="other">
                    <img class="myhead" src="static/images/3.png" alt="">
                    <div class="comment-content">
                        <p class="comment-text"><span class="user">韦小宝:</span>我也想去三亚。</p>
                        <p class="comment-time">
                            2019-01-19 14:36
                            <a href="javascript:;" class="comment-praise" total="0" my="0">赞</a>
                            <a href="javascript:;" class="comment-operate">删除</a>
                        </p>
                    </div>
                </div>
            </div>
            <div class="text-box">
                    <textarea class="comment" placeholder="评论…"></textarea>
                    <button class="btn">回 复</button>
                    <span class="word"><span class="length">0</span>/140</span>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    // on()方法可以在被选元素及子元素上添加一个或者多个事件处理程序 绑定事件 动态绑定
    // keyup 是jq的键盘事件
    $(function(){
        // $('.length').css('color','red')
        $('.comment').on('keyup',function(){
            // 获取当前comment内部的值和长度值
            var len = $(this).val().length;
            // 先获取一下当前元素的父级元素是否是.text-box,然后再找子孙元素.length 再使用text 使用总长度减去获取的长度
            $(this).parents('.text-box').find('.length').text(140-len)
        })
        // 获得当前页面文档中的回复按钮
        // 在文档中绑定一个click给btn按钮并给一个函数
        $(document).on('click','.btn',function(){
            // .prev()紧邻同级前一个同胞元素 然后获得内部的内容
            var val = $(this).prev().val()

            if(val==''){
                alert('内容为空')
            }else{
                // 获取当前日期 时间
                var date = new Date();
                var y = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+'  '+date.getHours()+':'+date.getMinutes()+':'+date.getSeconds();
                // console.log(y)
                var html = '<div class="comment-box clearfix" user="self"><img class="myhead" src="static/images/4.jpg" alt=""><div class="comment-content"><p class="comment-text"><span class="user">我:</span>'+val+'</p><p class="comment-time">'+y+'<a href="javascript:;" class="comment-praise" total="1" my="0" style="display: inline-block">1赞</a><a href="javascript:;" class="comment-operate">删除</a></p></div></div>'
                // 添加评论
                $(this).parents('.box').find('.comment-list').append(html);
                // 清空输入框
                $(this).parents('.box').find('.comment').val('');
                    // 初始化输入字数
                $(this).parents('.box').find('.length').text('0');
                // 输入完之后初始化高度
                 $(this).prev().height(20)




                // $('.comment-list')
            }
        }) 
            // 动态删除  如果不用document 只能删除第一个
            // $('.comment-operate').on('click',function(){
            //     if(confirm('确定删除吗')){
            //         // 这个父级 .comment-box 删除
            //         $(this).parents('.comment-box').remove()
            //     }
            // })
            $(document).on('click','.comment-operate',function(){
                if(confirm('确定删除吗')){
                    // 这个父级 .comment-box 删除
                    $(this).parents('.comment-box').remove()
                }
            })
            // 给评论框加高度
            $(document).on('click','.comment',function(){
                // 增加评论框高度是80
               $(this).height(80)
            })
            // 给评论点赞
             $(document).on('click','.comment-praise',function(){
                // 获得当前元素内部的属性  parseInt是转换成数字

               var num = parseInt($(this).attr('total'))+1;
               $(this).attr('total',num);
               // 把数字再转换成文字
               $(this).html(num+'赞')
            })
              $(document).on('click','.praise',function(){
                // 获得当前元素内部的属性  parseInt是转换成数字
                $(this).attr('total','0');
               var num = parseInt($(this).attr('total'))+1;
               $(this).attr('total',num);
               // 把数字再转换成文字
               $(this).html(num+'赞')
            }) 
    })
</script>
</body>
</html>

运行实例 »

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



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议