#javascript #html #jquery #css
Вопрос:
Я новичок в использовании локального хранилища. Может ли кто-нибудь научить меня, как я могу получить значение, которое я поместил в текстовую область, и как только я нажму кнопку готово, оно сохранится в .result
классе. Кроме того, как только я снова введу данные, он снова сохранит их в .result
классе? Пожалуйста, кто-нибудь может мне в этом помочь?
$(".Done").on("click", function() {
var test = $(".title").val();
localStorage.setItem("title", test);
});
.result {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="title"></textarea>
<div class="Done">Done</div>
<div class="result"></div>
Комментарии:
1. Вы не можете напрямую получить доступ к значению текстового поля, выбрав его класс, так как он предоставит вам массив элементов. Выберите первый элемент (который, вероятно, является текстовым полем), затем получите значение. Это
localStorage.setItem()
правильный синтаксис2. @РифатБинРеза
You cannot directly access the value of the textbox by selecting it's class as it will give you an array of elements
. Нет, этого не произойдет . У него есть только один элемент текстовой области с классом «заголовок». Это jquery, а не обычный javascript, где у вас естьgetElementsByClassName
-> я думаю, это то, о чем вы думали3. @MihaiT Ты прав, я об этом не думал
Ответ №1:
Чтобы достичь своей цели, вам нужно сделать две вещи. Сначала установите значение на text()
.result
основе значения в поле textarea
при нажатии кнопки.
Во-вторых, вам нужно проверить, установлено ли title
значение в локальном хранилище при загрузке страницы, и если да, то установите значение .result
с этим содержимым.
Логика выглядела бы так:
let setResult = title => $('.result').text(title || '');
jQuery($ => {
setResult(localStorage.getItem('title')); // set on load
$(".Done").on("click", function() {
let title = $(".title").val();
setResult(title); // set on click
localStorage.setItem("title", title);
});
});
Вот рабочий пример в jsFiddle, поскольку редактор фрагментов SO изолирован и не разрешает доступ к локальному хранилищу.
Комментарии:
1. Спасибо, @Rory McCrossan за эту идею.