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日

相关文章

  • 群星怎么修改巨型建筑上限 修改巨型建筑上限方法介绍

    群星怎么修改巨型建筑上限 在游戏《群星》中,玩家可以通过修改游戏文件来修改巨型建筑上限。下面是具体的步骤: Step 1:找到游戏文件夹 找到游戏的安装文件夹,在Steam上一般在“Steam\steamapps\common\Stellaris”目录下。如果是GOG或Paradox Plaza购买的版本,则在相应的安装目录下。 Step 2:进入游戏文件夹…

    Java 2023年6月15日
    00
  • Java 数据库连接池Druid 的介绍

    下面就为您详细讲解Java数据库连接池Druid的介绍。 一、概述 Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP等DB池的优点,同时加入了日志监控功能,利用Druid能够大大提高数据库访问的性能,是目前使用比较广泛的数据库连接池之一。 二、特点 Druid具有以下几个特点: 性能优秀。Druid经过多种优化,比如使用简单的S…

    Java 2023年6月3日
    00
  • Java实现上传Excel文件并导入数据库

    首先,要实现上传Excel文件并导入数据库,需要使用Java语言中的POI库来进行Excel文件的解析,同时需要使用数据库连接池实现连接管理。下面是详细的实现步骤。 1. 上传Excel文件 首先,需要在页面上实现上传文件的功能,可以使用form表单和input标签的type为file的属性来实现: <form action="upload&…

    Java 2023年5月20日
    00
  • Java开启新线程并传参方法代码实现

    下面是讲解“Java开启新线程并传参方法代码实现”的完整攻略: 内容概述 基本概念介绍 传统开启线程方式 Java 8 Lambda表达式实现开启线程 Java 8 方法引用实现开启线程 基本概念介绍 在线程编程中,有两种常见的线程启动方式: 继承Thread类,重写run方法,调用start方法启动线程。 实现Runnable接口,将Runnable实现类…

    Java 2023年5月26日
    00
  • Servlet中文乱码问题解决方案解析

    下面是Servlet中文乱码问题解决方案的详细攻略。 问题描述 在Servlet程序中,当表单提交包含中文字符时,会出现中文乱码的现象。比如表单中提交的文字为“中国”,但在Servlet程序中获取到的却是“中国”。 解决方案分析 原因分析 中文乱码的原因在于,不同的系统、不同的编程语言对中文字符的存储方式不同。当一个字符被从一个系统传递到另一个系统时…

    Java 2023年5月20日
    00
  • java中servlet实现登录验证的方法

    针对“java中servlet实现登录验证的方法”的完整攻略,我来进行详细讲解。 1. 基础登录验证实现方法 首先,我们要明确应用场景。一般来说,在Web应用程序中,登录验证是必不可少的部分。开发人员往往需要采用一定的技术手段,在用户输入用户名和密码的同时,实现对其身份的验证。 在Java Servlet中,我们可以通过以下步骤实现基础的登录验证: 接收用户…

    Java 2023年6月15日
    00
  • Java基础类之ArrayUtils工具类详解

    Java基础类之ArrayUtils工具类详解 ArrayUtils 工具类是 Apache Commons Lang 库中的一部分,提供了很多实用的用于处理数组的方法。本节将详细介绍 ArrayUtils 工具类的常用方法。 导入 ArrayUtils 首先需要明确的是,要使用 ArrayUtils 工具类,需要在 Java 代码中导入对应的包。可以使用以…

    Java 2023年5月26日
    00
  • Java中的匿名内部类是什么?

    匿名内部类是Java中一种特殊的类定义方式,它没有类名,而是将类定义作为表达式的一部分。匿名内部类常常用于定义一个只需要使用一次的类。 在Java中,匿名内部类可以是接口的实现类、抽象类的实现类或者普通类的子类。它通常会隐式地继承一个类或实现一个接口,同时还可以拥有自己的方法和属性。匿名内部类的定义方式与普通类的定义方式相似,但使用了不同的语法。 匿名内部类…

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