10 способов динамического добавления имен в список на экране с помощью JavaScript

В веб-разработке часто возникают сценарии, в которых мы хотим, чтобы пользователи динамически добавляли имена или элементы в список на экране. JavaScript предоставляет несколько методов для достижения этой функциональности, обеспечивая удобство взаимодействия с пользователем. В этой статье мы рассмотрим десять различных методов, каждый из которых сопровождается примером кода, чтобы продемонстрировать, как динамически добавлять имена в список с помощью JavaScript.

Метод 1: использование поля ввода и кнопки
HTML:

<input type="text" id="nameInput">
<button onclick="addName()">Add Name</button>
<ul id="nameList"></ul>

JavaScript:

function addName() {
  var nameInput = document.getElementById("nameInput");
  var nameList = document.getElementById("nameList");

  var li = document.createElement("li");
  li.appendChild(document.createTextNode(nameInput.value));

  nameList.appendChild(li);
  nameInput.value = "";
}

Метод 2: использование функции prompt()

var name = prompt("Enter a name:");
var nameList = document.getElementById("nameList");
var li = document.createElement("li");
li.appendChild(document.createTextNode(name));
nameList.appendChild(li);

Метод 3: использование функции confirm()

if (confirm("Do you want to add a name?")) {
  var name = prompt("Enter a name:");
  var nameList = document.getElementById("nameList");
  var li = document.createElement("li");
  li.appendChild(document.createTextNode(name));
  nameList.appendChild(li);
}

Метод 4. Использование прослушивателя событий при нажатии клавиши Enter
HTML:

<input type="text" id="nameInput">
<ul id="nameList"></ul>

JavaScript:

var nameInput = document.getElementById("nameInput");
var nameList = document.getElementById("nameList");
nameInput.addEventListener("keyup", function(event) {
  if (event.key === "Enter") {
    var li = document.createElement("li");
    li.appendChild(document.createTextNode(nameInput.value));
    nameList.appendChild(li);
    nameInput.value = "";
  }
});

Метод 5: использование метода appendChild()с событиями клавиатуры
HTML:

<ul id="nameList"></ul>

JavaScript:

document.addEventListener("keydown", function(event) {
  var nameList = document.getElementById("nameList");

  var li = document.createElement("li");
  li.appendChild(document.createTextNode(event.key));
  nameList.appendChild(li);
});

Метод 6: использование метода insertAdjacentHTML()
HTML:

<input type="text" id="nameInput">
<button onclick="addName()">Add Name</button>
<ul id="nameList"></ul>

JavaScript:

function addName() {
  var nameInput = document.getElementById("nameInput");
  var nameList = document.getElementById("nameList");
  nameList.insertAdjacentHTML("beforeend", "<li>" + nameInput.value + "</li>");
  nameInput.value = "";
}

Метод 7. Использование jQuery
HTML:

<input type="text" id="nameInput">
<button id="addButton">Add Name</button>
<ul id="nameList"></ul>

JavaScript:

$("#addButton").click(function() {
  var nameInput = $("#nameInput").val();
  $("#nameList").append("<li>" + nameInput + "</li>");
  $("#nameInput").val("");
});

Метод 8. Использование Vue.js
HTML:

<div id="app">
  <input type="text" v-model="nameInput">
  <button @click="addName">Add Name</button>
  <ul>
    <li v-for="name in names" :key="name">{{ name }}</li>
  </ul>
</div>

JavaScript:

new Vue({
  el: "#app",
  data: {
    nameInput: "",
    names: []
  },
  methods: {
    addName() {
      this.names.push(this.nameInput);
      this.nameInput = "";
    }
  }
});

Метод 9: использование React

import React, { useState } from "react";
function App() {
  const [nameInput, setNameInput] = useState("");
  const [names, setNames] = useState([]);
  const addName = () => {
    setNames([...names, nameInput]);
    setNameInput("");
  };
  return (
    <div>
      <input type="text" value={nameInput} onChange={(e) => setNameInput(e.target.value)} />
      <button onClick={addName}>Add Name</button>
      <ul>
        {names.map((name, index) => (
          <li key={index}>{name}</li>
        ))}
      </ul>
    </div>
  );
}
export default App;

Метод 10: использование Angular

import { Component } from '@angular/core';
@Component({
  selector: 'app-root',
  template: `
    <input type="text" [(ngModel)]="nameInput">
    <button (click)="addName()">Add Name</button>
    <ul>
      <li *ngFor="let name of names">{{ name }}</li>
    </ul>
  `
})
export class AppComponent {
  nameInput: string = "";
  names: string[] = [];
  addName() {
    this.names.push(this.nameInput);
    this.nameInput = "";
  }
}

В этой статье мы рассмотрели десять различных методов динамического добавления имен в список на экране с помощью JavaScript. Каждый метод предлагает уникальный подход, обеспечивающий гибкость для различных требований проекта. Предпочитаете ли вы традиционный JavaScript, jQuery или современные платформы, такие как Vue.js, React или Angular, теперь у вас есть широкий выбор вариантов. Не стесняйтесь экспериментировать с этими методами и адаптировать их к вашим конкретным потребностям в ваших проектах веб-разработки.