Добрый день, форумчане! Реализовываю мультиязычный сайт без обращения к серверу. Применял ранее на нескольких сайтах, но на данном сайте почему-то функция .attr() отказывается работать.
<div class="lang-selector">
<div class="language"><img src="{THEME}/images/ru.png"><p class="lang-name">Русский</p></div>
<div class="language"><img src="{THEME}/images/kz.png"><p class="lang-name">Қазақша</p></div>
</div>
По задумке: при нажатии на div с классом language у тега html должен меняться атрибут lang в соответствии с выбранным языком(реализовано в switch). При загрузке страницы я применял технологию куки, для выгрузки выбранного ранее языка. В конце этого скрипта поставил проверку. Если куки существует то задать атрибуту lang у html значение cookie. Если посетитель зашел первый раз то cookie нету, значит по дефолту lang="ru".
$(document).ready(function() {
function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
function setCookie(e){
document.cookie = 'lang=' + e;
}
$('.language').on('click', function() {
$('.language').removeClass("active-lang");
$(this).addClass("active-lang");
var stringOfLang = $(this).find('p').html();
var html = $('html');
if(stringOfLang === 'Қазақша'){
html.removeAttr('lang');
html.attr('lang', 'kz');
setCookie('kz');
}else if(stringOfLang === 'Русский'){
html.removeAttr('lang');
html.attr('lang', 'ru');
setCookie('ru');
}else{
html.removeAttr('lang');
html.attr('lang', 'ru');
setCookie('ru');
}
});
var cookie = getCookie('lang');
if(cookie){
$('html').attr('lang', cookie);
}else{
$('html').attr('lang', 'ru');
}
console.log(cookie);
});
Проблема: при загрузке страницы тег html отображается так:
<html>
т.е. без атрибута:( Помогите, плиз, просветлители))