Как удалить существующее имя класса и добавить новое с помощью jQuery и файлов cookie?
Как вы можете удалить имя класса и заменить его новым?
<style>
.red {background-color: #FF0000;}
.green{background-color: #00FF00;}
.blue {background-color: #0000FF;}
</style>
<body class="red">
<ul>
<li><a href="">red</a></li>
<li><a href="">green</a></li>
<li><a href="">blue</a></li>
</ul>
</body>
В этом случае, если вы нажмете на красный, зеленый или синий, имя класса тела изменится соответственно. Также он сделает печенье, которое сохранит выбор.
Я попробовал jQuery .addClass, и он работает, но он добавляет класс поверх существующего. Также я не могу сохранить куки.
3 ответа
Использование:
$('.red').removeClass('red').addClass('blue');
$(function() {
$("a").click(function() {
var color = $(this).text();
$("body").removeClass().addClass(color);
return false;
});
});
А теперь для части печенья
$(function() {
$("a").click(function() {
var color = $(this).text();
$("body").removeClass().addClass(color);
createCookie("color",color);
return false;
});
if (readCookie("color") != null) {
$("body").removeClass().addClass(readCookie("color"));
}
else {
$("body").removeClass().addClass("red");
}
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else
var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ')
c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0)
return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
Рабочий пример здесь. Спасибо QuirksMode за заранее сделанный код cookie (код cookie cookie-cutter?)
Без jQuery вы можете сделать это с помощью такой простой строки:
document.getElementsByTagName("body")[0].className = "red";
Это эффективно удаляет класс, назначенный элементу, и заменяет его тем, что вы хотите.
Для файлов cookie в PPK есть несколько простых методов чтения / записи / удаления файлов cookie.
createCookie("mySiteCookie", "red", 7); // Set the cookie to expire in 7 days.
readCookie("mySiteCookie"); // Should yield "red"
Ответ Расса Кэма и ответ Хэнка Гея сработают. Для файлов cookie вы можете использовать плагин cookie jQuery.
Вы должны быть в состоянии следовать примерам того, как установить и прочитать cookie для ваших нужд.