Помогите решить как оказалось сложную для меня задачу. На странице динамические формируется блок div c span внутри которые содержат текст. Текст - это время в формате пример: 1 ч. 10 мин. На формат я ни как не могу повлиять так как получаю его с другого сервиса. Задача получить общее время из всех что есть в списке, а там может быть разное кол-во. Сам блок я перебираю на элементы и получаю это время, но что делать дальше уже просто не знаю. Уже перебрал множество методов, но всё тщетно. Может кто знает ответ или просто натолкните на мысль.
Пример кода:
$(document).ready(function(){
var elem = $("[data-time-f='dtm']");
$(elem).each(function(){
console.log($(this).text());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="dtm-time">
<span data-time-f="dtm">1 ч. 10 мин.</span>
<span data-time-f="dtm">20 мин.</span>
<span data-time-f="dtm">30 мин.</span>
<span data-time-f="dtm">1 ч 23 мин.</span>
<span data-time-f="dtm">3 ч 42 мин.</span>
<span data-time-f="dtm">17 мин.</span>
</div>
В totalMinute будет общее к-во минут. Думаю трудностей с переводом в строку не возникнет ;)
$(document).ready(function () {
function getMinuteTime(time) {
var hour = time.match(/(\d+)\sч/);
var minute = time.match(/(\d+)\sм/);
return (hour && hour[1] | 0) * 60 + (minute && minute[1] | 0);
}
var elem = $("[data-time-f='dtm']");
var totalMinute = 0;
$(elem).each(function () {
totalMinute += getMinuteTime($(this).text());
});
});
Я бы парсил строку и разбивал ее по кусочкам а из кусочков потом собирал дату, нпример
str='1 ч. 10 мин.'
arr = str.split('ч');
hour=arr[0]; // тут у нас часы, рекомендую очистить на всякий случай от всякого мусора
minutes=arr[1]; // а тут останутся минуты, тоже очистить от ненужного
на тот случай если в строке нет часов, можно ввести прсотенькое условие, чтонибудь вроде
var re = '/ч/gi'; // игнорируем регистр и ищем по всей строке
var str = ' 10 мин.';
if(str.replace(re, '')){
// часы есть в строке тогда бьем строка как написано выше если не то строка уже минуты и значит ее нужно лишь очистить от мусора
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Проблема заключается в том, что если autoWidth: true, то items не работаетВ чем может быть проблема?
Возможно ли при помощи EPPlus в одной ячейке создать, например, 2 слова разного цвета?
разбираюсь с box/unbox, просматриваю свой код на наличие операторов box через ildasmexe
Как можно растянуть вложенные в ToolBar элементы на всю ширину ToolBar? Чтобы можно было через margin задавать расположение кнопок относительно правого...