userRouter.post('/settings', async (ctx) => {
const data = ctx.request.body;
if(!data.email || !data.email.length) {
ctx.session.messages.push('Введите почту!');
ctx.redirect('/user/settings');
}
});
userRouter.get('/settings', async (ctx) => {
await ctx.render('settings',{message: ctx.session.messages});
});
app.use(async (ctx,next)=>{
if(!ctx.session.messages) ctx.session.messages = [];
await next();
});
forEach
был заменён на map
, так-как для Promise.all
нужен массив промисов, который и формируется. $("#layers-widget-column-10 h5").each( function() {
var counter = $.trim($(this).text()); //Удаляем крайнее пробелы
var percentage = counter.substring(counter.length-1) == '%'; //Последний символ %?
console.log(percentage,counter.substring(counter.length-1));
$(this).prop('Counter', 0).animate({
Counter: (percentage?counter.substring(0, counter.length-1):counter) //Если проценты, возращаем строку без последнего символа
}, {
duration: 1500,
easing: 'swing',
step: function(now) {
$(this).text(Math.ceil(now)+(percentage?'%':'')); //Если процент, добавляем знак процента
}
}
);
});
$.trim
проблема была в пробелах <div id="parent">
<div class="first">
<input value="25" type="checkbox" checked>
<input value="50" type="checkbox" checked>
<input value="100" type="checkbox">
<input value="150" type="checkbox">
</div>
<div class="second">
<input value="25" type="checkbox">
<input value="50" type="checkbox">
<input value="100" type="checkbox" checked>
<input value="150" type="checkbox" checked>
</div>
</div>
var list = {};
$('#parent>div').each(function(ii,div){
list[$(div).attr('class')] = $.map($(div).find('input'),function(el){
if($(el).is(':checked')) return parseInt($(el).val());
});
});
console.log(list);
{
first: [25,50],
second: [100,150]
}
var list = '';
$('#parent>div').each(function(ii,div){
list += $(div).attr('class')+': ';
list += $.map($(div).find('input'),function(el){
if($(el).is(':checked')) return parseInt($(el).val());
}).join(', ')+'; ';
});
alert(list);
first: 25, 50; second: 100, 150;