Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка даты в классе (https://javascript.ru/forum/misc/43763-proverka-daty-v-klasse.html)

didfree 19.12.2013 19:16

Проверка даты в классе
 
Здравствуйте! Помогите пожалуйста решить один вопрос, сам в js не сильно разбираюсь.

Допустим у меня на странице есть пару блоков, в которых прописана дата, и мне ее нужно проверять при помощи jquery.

Вот код этого блока:
<div class="data_material_gl"><span class="js_chislo">12</span>.<span class="js_mesac">12</span>.<span class="js_god">2013</span></div>


Код где я проверяю дату:
var obnova_data = new Date();

var js_chislo = parseInt($('.js_chislo').html())+7;
var js_mesac = $('.js_mesac').html();
var js_god = $('.js_god').html();

var js_chislo2 = obnova_data.getDate();
var js_mesac2 = obnova_data.getMonth()+1;
var js_god2 = obnova_data.getFullYear();

if (js_chislo >= js_chislo2 && js_mesac == js_mesac2 && js_god == js_god2) {
$(".data_material_gl").css({ 'color' : '#ffffff', 'backgroundColor' : '#D87658'});
}


Вроде все правильно работает, js меняет фон класса "data_material_gl", если материал был добавлен на текущей неделе.

Но проблема в том, что фон меняется на всех блоках с классом "data_material_gl". Работать с id у меня нету возможности, так как материалов очень много.

Вопрос: как менять фон только одного класса "data_material_gl", который на данный момент проверяется в js.
ps: нажатия не использую, проверка сразу же после загрузки страницы.

Заранее спасибо за любую помощь! :thanks:

рони 19.12.2013 19:25

didfree,
проверять надо циклом каждый "data_material_gl" а не хором все сразу
Цитата:

.each()

Выполняет заданную функцию для каждого из выбранных элементов в отдельности. Это дает возможность обрабатывать выбранные элементы отдельно друг от друга.

didfree 19.12.2013 19:49

рони, я пробовал работать с each, но без цикла... Можете пожалуйста накидать небольшой набросок для примера.

рони 19.12.2013 19:54

didfree,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script>
 $(function () {
       var obnova_data = new Date();
       obnova_data = obnova_data.getDate() + '.' + (obnova_data.getMonth() + 1) + '.' + obnova_data.getFullYear();
       $(".data_material_gl").each(function (indx, element) {
           var data = $(element).text();
           if (data == obnova_data) $(element).css({
               'color': '#ffffff',
               'backgroundColor': '#D87658'
           });
       });

   });
  </script>
</head>

<body>
  <div class="data_material_gl"><span class="js_chislo">12</span>.<span class="js_mesac">12</span>.<span class="js_god">2013</span></div>
  <div class="data_material_gl"><span class="js_chislo">19</span>.<span class="js_mesac">12</span>.<span class="js_god">2013</span></div>
  <div class="data_material_gl"><span class="js_chislo">20</span>.<span class="js_mesac">12</span>.<span class="js_god">2013</span></div>
</body>

</html>

didfree 19.12.2013 20:44

рони, спасибо большое, буду пробовать.


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