Передавать переменную JS с одной страницы на другую

Я создал автозаполнение AJAX из файла JSON

function run() {
    field.show();
    field.html('');
    let val = search.val();
    let input = new RegExp(val, "gi");

    $.get("js/pk.json").then(function(city) {
        if (val.trim().length === 0) {
            field.empty();
            field.hide();
        }
        $.each(city, function(key, value) {
            let n = new RegExp(val, 'gi');
            let name = value.city.replace(n, `<span class = "me">${val}</span>`);
            if (value.city.search(input) != -1) {
                field.append(`<li class = "list-search" data-name='${value.city}'><a href = "pages/check.html" class = "waves-effect">${name}  ${value.country}<br><br></a></li>`);
            }
        })
    })
});

и я хочу передать значение тега li, щелкнувшее по атрибуту "data-name", в div на другой странице.

Это :

$("#field").on("click", "li", function(e) {
    finalName=$(this).attr('data-name');
});

а div - <div class = "Fname"></div>.

Переменная finalName является глобальной, но вне этого события щелчка она показывает undefined.

Я не эксперт, но думаю, что это связано с асинхронным запросом AJAX, который загружает переменную до того, как ей будет присвоено значение. Кто-нибудь может объяснить мне, как это будет работать? Я нашел другие ответы, связанные с этим, но не смог их понять. заранее спасибо

Возможный дубликат Как мне вернуть ответ от асинхронного вызова?

Louys Patrice Bessette 10.08.2018 02:51

Поместите его в href<a> как параметр запроса, а не атрибут данных <li>. Затем прочтите searchParams с URL-адреса на другой странице

charlietfl 10.08.2018 03:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это, сохранив данные в localStorage или sessionStorage, а затем загрузив их на другой странице. Например:

sessionStorage.setItem(SOME_KEY, VALUE_YOU_WANT_TO_SAVE);

а на другой странице просто получите его, вызвав:

var data = sessionStorage.getItem("THE_SAME_KEY_USED_BEFORE");

Теперь данные содержат данные, которые вы пытались передать.

Надеюсь, это поможет!

Другие вопросы по теме