Подскажите, как реализовать следующий механизм
Есть ссылка, кликая по которой мы получаем у родительского блока текстовые значения у спана с классом name
и price_per_unit
. А дальше у куки проверить есть ли значение совпадающие с текстовом значении спана с классом name
, если есть то удалить это значение из куки.
Кука имеет следующую структуру
basket1:
"["Текст","860"]"
basket2
"["Книга","160"]"
Для работы с кукой использую след. библиотеку https://github.com/js-cookie/js-cookie
$(document).on("click",".del", function(e){
e.preventDefault();
var removeProduct = $(this).closest(".block").find("span.name").text();
var removePrice = $(this).closest(".goods").find("span.price_per_unit").text();
$(this).closest(".goods").hide();
obj = document.cookie;
for (var prop in obj) {
if(obj == removeProduct) {
obj = null;
}
}
});
var cookies = Cookies.get(); // получаем все куки (с помощью библиотеки js-cookie)
var value2remove = '["' + removeProduct + '","' + removePrice + '"]'; // собираем искомое значение в формате ["Продукт","цена"]
for (var cookie_name in cookies) { // перебираем все полученные куки
if(cookies[cookie_name] == value2remove) // если это то самое значение - ...
Cookies.remove(cookie_name); // удаляем куку по имени
// если так и не удалит - раскомментить эту строчку и сверить значения,
// т.к. я не уверен, что в полях "name" и "price_per_unit" лежат
// данные в корректном формате, и возможно понадобится над ними поколдовать
//console.log(cookie_name, cookies[cookie_name], value2remove);
}
Воспользуйтесь библиотекой jQuery Cookie
Подключение:
<script src="/path/to/jquery.cookie.js"></script>
Установить куку:
$.cookie('name', 'value', { expires: 7 });
Удалить куку:
$.removeCookie('name'); // => true
А по поводу корзинки, так лучше сделать массив из товаром и её уже писать в куки:
var items = [],
_cart = {};
_cart.add = function (item){
$.each(items, function (index, cart_item){
if (JSON.stingify(cart_item) == JSON.stringify(item)){
items[index].qty++;
_cart.renewCookieCart();
return 'Item quantity has been improved';
}
_cart.renewCookieCart();
items.push(item);
return 'Item has been added';
});
}
_cart.remove = function (index){
return items.splice(index, i);
}
_cart.renewCookieCart = function (){
return $.cookie('basket', JSON.stringify(items));
}
_cart.getCart = function (){
return JSON.parse($.cookie('basket'));
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Сгенерировал спрайт с помощью этого сервиса ruspritegen
Пытаюсь написать функцию с переменным числом параметров без использования доп библиотекФункция такого вида: sum(int к-во элементов,элемент1,элемент2...
Нужно найти подстроку, в строке wstring, без учёта регистраОС - Windows