Установить куки на основе атрибута данных

Я хочу установить куки со значением атрибута данных, определенных для ссылки привязки. Пример:

  • <a href="#" data-lang="de">Deutsch</a>
  • <a href="#" data-lang="fr">Français</a>

Случай использования:

  • Пользователь нажимает кнопку смены языка
  • Появится модальный язык, показывающий пять разных языков. Каждая ссылка имеет свой data-lang,
  • Пользователь нажимает на нужный язык, а затем файл cookie называется "выбранный язык".is created with the value of thedata-lang` выбранного lang.

Настройка cookie: setCookie('language-selected','data-lang_here',7);

Как бы я пошел по этому поводу?

2 ответа

Вы можете использовать плагин jQuery-cookie. использование $.cookie('lang-selected') чтобы получить печенье.

HTML

    <a href="#" data-lang="de">Deutsch</a>
    <a href="#" data-lang="fr">Français</a>

Jquery

    $("a").click(function($event){
      $event.preventDefault();
      let lang = $($event.target).attr('data-lang');
      $.cookie('language-selected', lang, {expires : 30});
     });

html

<a href="#" data-lang="de">Deutsch</a>
<a href="#" data-lang="fr">Français</a>

js

let anchors = document.querySelectorAll('a');
for (let anchor of anchors) {
    anchor.addEventListener("click", (event) => {
        let langValue = event.target.getAttribute('data-lang');
        setCookie("language-selected", langValue, 1); // expiration time is 1 day
    })
}


function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
Другие вопросы по тегам