Как изменить текст кнопки при нажатии с помощью localStorage в Javascript?

Опубликовано: 11 Августа, 2022

В этой статье мы узнаем, как изменить текст кнопки с помощью Javascript localStorage, когда мы нажимаем кнопку, полученную путем добавления прослушивателя событий HTML onclick.

Подход: окно HTML DOM localStorage позволяет нам хранить пары ключ-значение в нашем браузере, используя объект. Имя ключа должно быть уникальным, а пары ключ-значение всегда должны храниться в строковом формате. Основное различие между localStorage и sessionStorage заключается в том, что данные, хранящиеся в localStorage, не очищаются, если не задано значение localStorage.clear(). Данные, хранящиеся в sessionStorage, очищаются при выходе из сеанса страницы, если не задано значение sessionStorage.clear().

Используя объект localStorage, мы вызовем метод getItem('Key','Value') для установки данных с помощью localStorage.setItem('Key','Value') и изменим текст кнопки с помощью localStorage.getItem('Key').

Синтаксис:

Storageobj = window.localStorage;

Возвращаемое значение: возвращает объект хранения.

Пример: Ниже приведена реализация описанного выше подхода.

  • HTML: ниже написан код HTML:

HTML




<!DOCTYPE html>
<html lang="en">
<head>
    <title>Changing Button text on hovering using localStorage</title>
    <meta charset="UTF-8">
    <meta name="viewport" content=
          "width=device-width, initial-scale=1.0">
    <style>
        @import url("https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@400;500&display=swap");
        * {
            margin: 0px;
            padding: 0px;
            font-family: "Zilla Slab", serif;
        }
        section {
            position: absolute;
            width: 100%;
            height: 100%;
            right: 0px;
            bottom: 0px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        #containers {
            text-align: center;
            border: 2px solid green;
            height: 52vh;
            width: 29vw;
            display: flex;
            justify-content: center;
            flex-direction: column;
            background-color: cornsilk;
        }
        section p {
            font-weight: 400;
        }
        /* Designing Button */
        #btn {
            margin-top: 12px;
        }
        button {
            padding: 7px;
            border: 1px solid black;
            border-radius: 3px;
            cursor: pointer;
            font-weight: 500;
        }
        button:hover {
            transition: 1s;
            background-color: rgb(226, 226, 228);
        }
    </style>
</head>
  
<body>
    <section id="btn-container">
        <div id="containers">
            <p id="para-id">
               Click the Button to change the Button text
            </p>
  
            <div id="btn">
                <button id="btn-design">CLICK NOW</button>
            </div>
        </div>
    </section>
</body>
<script src="script.js"></script>
</html>

  • JavaScript: ниже написан код JavaScript:

Javascript




let btnDsn = document.querySelector("#btn-design");
localStorage.setItem("Name","CLICKED");
let name = localStorage.getItem("Name");
  
(function (){
    btnDsn.onclick = function() {
        btnDsn.textContent = name;
    };
})();

Выход:

Чтобы очистить все данные из localStorage, мы можем использовать localStorge.clear(), который помогает очистить все данные, которые мы вставили с помощью метода setItem(). В результате при наведении на кнопку текст не изменится, так как localStorage уже очищен.

Код JavaScript: Ниже приведена реализация описанного выше подхода. Вы можете изменить приведенный выше код сценария с помощью следующего фрагмента.

Javascript




let btnDsn = document.querySelector("#btn-design");
localStorage.setItem("Name","CLICKED");
let name = localStorage.getItem("Name");
  
(function (){
    btnDsn.onclick = function() {
        btnDsn.textContent = name;
    };
})();
localStorage.clear();

Выход: