发布评论案例详解

在这里插入图片描述

该发布评论所要实现的功能有:
1.文本框输入文字,对应的文字字数改变
2.点击发布,可以将评论按一定的形式发布
3.点击删除,可以进行删除操作

首先是功能1.文本框输入文字,对应的文字字数改变

// *****************输入文字改变字数***********************
      // 1.获取标签(点击什么 什么改变都需要获取)
      let area = document.querySelector("#area");
      let useCount = document.querySelector(".useCount");
      // 2.注册事件
      area.addEventListener("input", function () {
      //将文本框中输入的内容长度输出到字数计数的位置
        useCount.innerHTML = area.value.length;
      });

其次是功能2.点击发布,可以将评论按一定的形式发布

先分析功能2,

  • 有两种方法可以触发事件,第一种是按发布按钮,第二种是回车键。
  • 如果在文本框内输入的内容(内容长度=0)为空白,则不输出(判断)
  • 内容的发布,可以用节点来做,创建新节点,再将其追加到对应的结构中
  • 内容发布之后,要将输入框及其文字计数恢复为空白和0
// *****************点击发布显示内容***********************
      // 1.获取标签
      let btn = document.querySelector("#send");
      let list = document.querySelector("#list");
      // 2.注册事件
      btn.addEventListener("click", function () {
        // 补充:输入不能为0
        if (area.value.length === 0) {
          alert("内容不能为空");
          return;
        }
        // 2.1创建节点
         // 随机事件
        let random = Math.floor(Math.random() * dataArr.length);
        let li = document.createElement("li");
        // 2.2节点内容
        li.innerHTML = ` <div class="info">
        <img class="userpic"  src="${dataArr[random].imgSrc}"/>
        <span class="username">${dataArr[random].uname}</span>
        <p class="send-time">${new Date().toLocaleString()}</p>
        </div>
        <div class="content">${area.value}</div>
        <span class="the_del">X</span>
       `;
        // 2.3追加节点
        list.insertBefore(li, list.children[0]);
        // 2.4重置
        area.value = "";
        useCount.innerHTML = 0;
      });
      //3.回车发布
      area.addEventListener("keydown", function (e) {
      //key是指用户按下键盘键的值
        if (e.key == "Enter") {
          btn.click();
        }
      });

最后是功能3.点击发布,点击删除,可以进行删除操作
分析:
我们所要删除的内容是我们通过程序追加进去的,所以我们可以通过事件委托,减少事件的绑定次数

list.addEventListener("click", function (e) {
			//如果事件对象的class名为the_del
        if (e.target.className === "the_del") {
          //将其父元素移除,当前e.target实际上就是class为the_del的这个标签,而我们不能只删除这个元素,所以通过事件委托,将其父元素删除
          list.removeChild(e.target.parentNode);
        }
      });
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript是一种常用的编程语言,它可以用于实现网页动态效果、添加交互性、与服务器进行通信等。下面是一些常见的JavaScript经典案例: 1. 动态修改网页内容 使用JavaScript可以在网页加载后动态修改网页内容,比如修改标题、添加新的段落或者图片等。 2. 处理表单 JavaScript可以用来验证表单输入的内容是否符合要求,比如判断用户输入的密码是否足够复杂、电子邮件地址是否有效等。 3. 创建动态图表 使用JavaScript可以创建动态的图表,比如折线图、柱状图、饼图等,方便对数据进行可视化展示。 4. 在网页上显示时钟 使用JavaScript可以在网页上实现一个时钟,并且可以持续更新当前时间。 5. 创建滑动轮播图 使用JavaScript可以创建滑动轮播图,方便展示多张图片。 这只是JavaScript的一些基本用法,实际上JavaScript还有很多更复杂的应用场景。希望这些案例能对您有所帮助。 ### 回答2: JavaScript经典案例有很多,以下是其中几个: 1. 轮播图:轮播图是网页中常见的功能,通过JavaScript实现可以循环播放多张图片,并提供前进和后退按钮。通过修改元素的样式,控制图片的显示和隐藏,可以实现动态的切换效果。 2. 表单验证:表单验证是网页中常见的功能,通过JavaScript可以对用户输入的内容进行验证,如检查邮箱格式、密码强度等。通过正则表达式或条件判断,可以实现对用户输入的有效性判断,并提供相应的提示信息。 3. 下拉菜单:下拉菜单是网页中常用的导航方式,通过JavaScript可以实现菜单的展开和收起功能。通过给菜单添加事件监听器,当用户点击菜单时触发相应的行为,可以实现交互式的下拉菜单效果。 4. 星级评分:星级评分是常见的评价方式,通过JavaScript可以实现用户对某个内容进行星级评分。通过监听用户的鼠标移动和点击事件,可以根据用户的操作改变评分的显示效果,并将用户评分信息保存在后台。 5. 时钟倒计时:时钟倒计时是网页中常见的功能,通过JavaScript可以实现倒计时的效果,如活动截止时间倒计时、倒计时游戏等。通过获取当前时间戳和目标时间戳的差值,可以计算剩余时间并动态更新显示。 以上是JavaScript经典案例的几个例子,这些案例展示了JavaScript在网页中的丰富应用,它们可以提供更好的用户体验和交互效果。这些案例也只是冰山一角,JavaScript的应用场景还有很多,可以根据具体需求进行灵活的运用。 ### 回答3: JavaScript经典案例之一是实现一个简单的计算器。这个计算器可以接受用户的输入,并根据输入的操作符进行相应的计算并显示结果。 首先,我们需要创建一个HTML页面,包括一个显示结果的文本框以及一系列的数字和操作符按钮。接着,我们使用JavaScript来实现计算器的功能。 我们可以定义一个函数来处理用户点击按钮的事件。当用户点击数字按钮时,我们将该数字追加到结果文本框中。当用户点击操作符按钮时,我们将操作符保存起来,并清空结果文本框。 然后,我们需要定义另一个函数来处理用户点击等号按钮的事件。这个函数将根据保存的操作符,将结果文本框中的数值进行相应的计算,并将计算结果显示在结果文本框中。 最后,我们需要将这些函数与相应的按钮绑定起来。通过使用JavaScript的事件监听器,我们可以将每个按钮的点击事件与对应的处理函数相关联。 这样,我们就完成了一个简单的计算器的实现。用户可以通过点击数字按钮输入数字,通过点击操作符按钮来选择操作符,再点击等号按钮来获得计算结果。这个案例展示了如何使用JavaScript来实现一个交互性较强的功能,并对用户的输入进行处理和计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值