JavaScript DOM实现简单留言板

下面是“JavaScript DOM实现简单留言板”的完整攻略。

一、准备工作

1.1 创建HTML文件

首先,我们要创建一个HTML文件,命名为“index.html”。在这个文件里编写HTML结构,用于显示留言板的相关内容。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JavaScript DOM实现简单留言板</title>
</head>
<body>
    <h1>JavaScript DOM实现简单留言板</h1>
    <form>
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username"><br>

        <label for="message">留言:</label>
        <textarea id="message" name="message"></textarea><br>

        <button type="button" id="submit">提交留言</button>
    </form>

    <ul id="message-list"></ul>

    <script src="app.js"></script>
</body>
</html>

1.2 创建JavaScript文件

接着,我们要创建一个JavaScript文件,命名为“app.js”。在这个文件里编写JavaScript代码,实现留言板的相关功能。

// 获取元素
const form = document.querySelector('form');
const username = document.querySelector('#username');
const message = document.querySelector('#message');
const messageList = document.querySelector('#message-list');

// 提交留言
form.addEventListener('submit', (event) => {
  event.preventDefault();

  const li = document.createElement('li');
  const strong = document.createElement('strong');
  const span = document.createElement('span');

  strong.textContent = username.value;
  span.textContent = message.value;

  li.appendChild(strong);
  li.appendChild(span);
  messageList.appendChild(li);

  username.value = '';
  message.value = '';
});

二、攻略解析

2.1 获取元素

const form = document.querySelector('form');
const username = document.querySelector('#username');
const message = document.querySelector('#message');
const messageList = document.querySelector('#message-list');

在获取元素时,我们使用了document.querySelector()方法。这个方法接收一个选择器字符串作为参数,并返回满足该选择器的第一个元素。在这个留言板项目中,我们使用了四个不同的选择器:

  1. 'form'选择器:用于获取表单元素;
  2. '#username'选择器:用于获取用户名输入框元素;
  3. '#message'选择器:用于获取留言输入框元素;
  4. '#message-list'选择器:用于获取留言列表元素。

2.2 提交留言

form.addEventListener('submit', (event) => {
  event.preventDefault();

  const li = document.createElement('li');
  const strong = document.createElement('strong');
  const span = document.createElement('span');

  strong.textContent = username.value;
  span.textContent = message.value;

  li.appendChild(strong);
  li.appendChild(span);
  messageList.appendChild(li);

  username.value = '';
  message.value = '';
});

在提交留言时,我们使用了form.addEventListener()方法。这个方法接收两个参数:事件名称和事件处理函数。

在事件处理函数中,我们使用了以下几个方法:

  1. event.preventDefault()方法:阻止表单的默认提交行为;
  2. document.createElement()方法:创建新的HTML元素;
  3. textContent属性:用于设置元素的文本内容;
  4. appendChild()方法:将某个元素追加到另一个元素的子节点列表的末尾;
  5. 值为''的属性:通过将某个属性的值设置为空字符串来清空表单输入框。

在这个过程中,我们首先创建了一个新的<li>元素,并创建了两个子元素<strong><span>,分别用于显示用户名和留言内容。然后将这两个子元素都添加到<li>元素中,并将<li>元素添加到留言列表中。最后,清空了表单输入框的值,以达到重置表单的目的。

2.3 示例说明

下面,我们给两个示例,来演示如何添加更多的功能。

示例1:限制留言字数

我们可以在代码中添加一个函数来限制留言的字数。比如,我们可以设置留言的最大字数为50。如果用户输入的留言字数超过了50个字符,我们就给出一个警告提示。代码修改如下:

// 获取元素
const form = document.querySelector('form');
const username = document.querySelector('#username');
const message = document.querySelector('#message');
const messageList = document.querySelector('#message-list');

// 提交留言
form.addEventListener('submit', (event) => {
  event.preventDefault();

  // 限制留言字数
  if (message.value.length > 50) {
    alert('留言字数不能超过50个字符!');
    return;
  }

  const li = document.createElement('li');
  const strong = document.createElement('strong');
  const span = document.createElement('span');

  strong.textContent = username.value;
  span.textContent = message.value;

  li.appendChild(strong);
  li.appendChild(span);
  messageList.appendChild(li);

  username.value = '';
  message.value = '';
});

在这个代码中,我们添加了一个判断语句,用于限制留言字数。如果留言字数超出了50个字符,就弹出一个警告提示。

示例2:删除留言

我们也可以添加一个功能,允许用户删除自己的留言。具体实现方法是,在每个留言的后面添加一个“删除”按钮,当用户点击这个按钮时,就从留言列表中删除该留言。代码修改如下:

// 获取元素
const form = document.querySelector('form');
const username = document.querySelector('#username');
const message = document.querySelector('#message');
const messageList = document.querySelector('#message-list');

// 提交留言
form.addEventListener('submit', (event) => {
  event.preventDefault();

  const li = document.createElement('li');
  const strong = document.createElement('strong');
  const span = document.createElement('span');
  const button = document.createElement('button');

  strong.textContent = username.value;
  span.textContent = message.value;
  button.textContent = '删除';

  li.appendChild(strong);
  li.appendChild(span);
  li.appendChild(button);
  messageList.appendChild(li);

  button.addEventListener('click', () => {
    messageList.removeChild(li);
  });

  username.value = '';
  message.value = '';
});

在这个代码中,我们添加了一个新的<button>元素,用于删除留言。当用户点击这个按钮时,我们就可以从留言列表中删除该留言。为了实现这个功能,我们在添加留言时,给每个留言都添加了一个“删除”按钮,并为这个按钮添加了一个click事件处理函数。在这个事件处理函数中,我们使用messageList.removeChild()方法,将当前的留言元素从留言列表中删除。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript DOM实现简单留言板 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • SpringBoot整合Shiro和Redis的示例代码

    下面我将为你详细讲解“SpringBoot整合Shiro和Redis的示例代码”的具体过程,包含示例代码说明。 一、引入相关依赖 首先需要在 pom.xml 文件中引入相关依赖,包括 SpringBoot、Shiro 和 Redis 的依赖,示例代码如下: <dependencies> <!– SpringBoot 依赖 –> &…

    Java 2023年6月15日
    00
  • 分享Java性能调优的11个实用技巧

    首先,我们需要明确一下Java性能调优的目标:提高应用程序的处理能力、降低资源占用率、提高用户体验和稳定性。为达成此目标,我们可以使用以下11个实用技巧: 1.使用最新的JDK版本 尽可能地使用最新的JDK版本,因为它们通常具有更好的性能和更高效的垃圾回收器。 2.使用本地变量 使用本地变量可以减少对垃圾回收器的压力,因此可以提高性能。例如,可以将对象引用存…

    Java 2023年5月26日
    00
  • java中ArrayList的两种排序方法实例

    接下来我将详细介绍Java中ArrayList的两种排序方法实例,步骤如下: 1. ArrayList排序的基本概念 在介绍排序方法之前,我们需要了解一些基本概念。ArrayList是Java API中的一个类,它用于存储和操作一系列对象。当我们创建一个ArrayList时,它是未排序的。 我们可以使用Collections类来对ArrayList进行排序。…

    Java 2023年5月26日
    00
  • Java异常处理中的try-with-resources语句的作用是什么?

    Java中的异常处理是一门非常重要的技术,可以使程序在面对问题时,不至于直接崩溃而不能继续执行。一种常见的Java异常处理语句就是try-catch语句,它能够捕获代码块中的异常并进行处理。在Java 7中,又引入了try-with-resources语句,它是一个功能强大、易于使用的语言结构,广泛用于异常处理中。 try-with-resources语句可…

    Java 2023年4月27日
    00
  • SQL 注入式攻击的本质

    SQL注入式攻击指的是攻击者通过在应用程序的输入框中插入恶意的SQL代码,让数据库执行攻击者所期望的操作。SQL注入攻击通常被用来窃取敏感信息、修改数据库数据、或者进行其他恶意操作。 攻击者会尝试在表单、搜索框、登录框等应用程序的输入框中插入SQL代码。如果输入框没有进行正确的数据过滤与转义,攻击者就可以通过输入特定的SQL语句来修改数据库中的数据,这种攻击…

    Java 2023年6月15日
    00
  • Java Runtime Environment怎么安装 JRE安装详细图文教程

    Java Runtime Environment怎么安装 JRE安装详细图文教程 什么是Java Runtime Environment Java Runtime Environment (JRE)是一个程序开发环境,它由包含Java运行时所需的库和系统组件的集合组成。JRE允许用户在电脑上运行Java编写的程序和Applet。 安装Java Runtime…

    Java 2023年5月26日
    00
  • 解决Springboot-application.properties中文乱码问题

    解决 Springboot-application.properties 中文乱码问题需要遵循以下步骤: 步骤一:修改 IDE 编码 在开始修改 Springboot-application.properties 文件之前,首先需要确保 IDE 的编码设置正确。因为如果 IDE 的编码设置不正确,无论怎么修改 Springboot-application.p…

    Java 2023年5月20日
    00
  • 详解idea搭建springboot+mybatis框架的教程

    下面我会详细讲解“详解idea搭建springboot+mybatis框架的教程”的完整攻略。 1. 准备工作 首先,我们需要确保已经安装了以下软件: JDK(Java Development Kit): 版本应该为 1.8 或更高 IntelliJ IDEA: 推荐使用最新版,也可以使用其他的Java开发工具,如Eclipse等 Maven: 确保已经安装…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部