Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перемещение класса по активному по дате селектору (https://javascript.ru/forum/misc/56927-peremeshhenie-klassa-po-aktivnomu-po-date-selektoru.html)

emptyindorill 10.07.2015 13:03

Перемещение класса по активному по дате селектору
 
Здравствуйте, пытаюсь написать функцию смены класса у селектора при активной дате.
То есть, есть массив элементов с указанными: data-year="", data-month="" и data-day="".
Например:
<li data-year="2015" data-month="7" data-day="10"></li>

И нужно что бы когда число совпадало с data- данными у этого селектора был класс, например, actual, а у селектора за вчерашнее число удалялся этот класс.

То есть вчера было так:
<li data-year="2015" data-month="7" data-day="09" class="actual"></li><li data-year="2015" data-month="7" data-day="10"></li>

А сегодня должно быть так:
<li data-year="2015" data-month="7" data-day="09"></li><li data-year="2015" data-month="7" data-day="10" class="actual"></li>


С таким сталкиваюсь впервые и вообще не представляю как такое можно сделать. Даже не могу придумать как правильно составить запрос, по запросу "работа с селектором по дате" или "смена класса при смене даты" и других разных - ничего дельного не нашёл. А по поиску здесь - единственно понятное мне это:
function showDay(){
var mon = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября','Декабря']; //массив месяцев
var date = new Date();// текущая дата
/* date.setDate(date.getDate() + 10); */ //устанавливаем дату + 10 дней
var msg = date.getDate() + " "+ mon[date.getMonth()]; //формируем текст для сообщения
/* alert(msg); */ //а теперь узнаем результат
}
showDay();

Но я не могу додуматься что писать, по этому - подскажите пожалуйста - как можно соотнести работу с data- и датой? Если есть темы с примерным описанием но я криворукий и не нашёл - будьте добры ссылку.

ksa 10.07.2015 13:26

Цитата:

Сообщение от emptyindorill
То есть вчера было так:
<li data-year="2015" data-month="7" data-day="09" class="actual"></li><li data-year="2015" data-month="7" data-day="10"></li>


А сегодня должно быть так:
<li data-year="2015" data-month="7" data-day="09"></li><li data-year="2015" data-month="7" data-day="10" class="actual"></li>

У тебя та страница вечно висит на каком-то клиенте? :blink:

Потому как задача больше серверная, нежели клиентская...

ksa 10.07.2015 13:31

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
.actual {
	color: red;
}
</style>
<script type='text/javascript'>
$(function(){
	var year=2015;
	var month=7;
	var day=10;
	$('.actual').removeClass('actual');
	$('[data-year="'+year+'"][data-month="'+month+'"][data-day="'+day+'"]').addClass('actual');
});
</script>
</head>
<body>
<ul>
	<li data-year="2015" data-month="7" data-day="09" class="actual">1</li>
	<li data-year="2015" data-month="7" data-day="10">2</li>
</ul>
</body>
</html>

emptyindorill 10.07.2015 13:41

Нигде не висит, обычный сайт на cms, а в список прописываю data- руками.

ksa 10.07.2015 13:42

Цитата:

Сообщение от emptyindorill
Нигде не висит

Тогда пусть сервер сразу ставит класс нужному элементу списка...


Часовой пояс GMT +3, время: 13:32.