Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak js krócej zapisać w jquery?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
marcus755
Znalazłem coś takiego w js:

  1. var my_data = new Date();
  2. var godz = my_data.getHours();
  3.  
  4. var IMG = new Array();
  5. IMG[0]=["noc.jpg", 6];
  6. IMG[1]=["rano.jpg", 12];
  7. IMG[2]=["poludnie.jpg", 16];
  8. IMG[3]=["wieczor.jpg", 19];
  9.  
  10. var str="";
  11. for (var i=1; i<IMG.length; i++)
  12. {
  13. if((godz>IMG[i-1][1])&&(godz<=IMG[i][1])) str=IMG[i][0];
  14. }
  15. if(str=="") str=IMG[0][0];
  16.  
  17. document.write("<img src="+str+">");


jak to krócej zapisać w jquery?
trueblue
Zawsze możesz skrócić w czystym JS:
  1. var godz=new Date().getHours();
  2. var IMG=[["noc.jpg",6],["rano.jpg",12],["poludnie.jpg",16],["wieczor.jpg",19]];
  3. var str=IMG[0][0];
  4. for(var i=1;i<IMG.length;i++)
  5. if((godz>IMG[i-1][1])&&(godz<=IMG[i][1])) str=IMG[i][0];
  6. document.write("<img src="+str+">");
marcus755
ok dzięki:-) rozumiem,
a jak modyfikując powyższy kod osiągnąć następujący efekt, tzn. mam div'y, a w nich dynamicznie z CMS'a zaciągane godziny (jak poniżej),
jak z każdego div'a wyciągnąć godzinę i przyporządkować każdej godzinie inny obrazek? :
Obrazków jest 24, tyle ile ma doba, ale nie wszystkie są dodawane w CMS-ie...
...jednak te które się wyświetlają muszą być do nich prawidłowo przyporządkowane obrazki, jak to zrobić?

<div class="time">12:00</div>
<div class="time">14:00</div>
<div class="time">15:00</div>
<div class="time">19:00</div>
trueblue
A gdzie ma być wstawiony obrazek przyporządkowany danej godzinie z diva?
marcus755
w miejsca wielokropków <img src=""> z przyporządkowanym do godziny

<div class="block">
<div class="time">12:00</div>
<div class="timer">...</div>
</div>
<div class="block">
<div class="time">14:00</div>
<div class="timer">...</div>
</div>
<div class="block">
<div class="time">16:00</div>
<div class="timer">...</div>
</div>
<div class="block">
<div class="time">18:00</div>
<div class="timer">...</div>
</div>
trueblue
  1. var godz=new Date().getHours();
  2. var IMG=[["noc.jpg",6],["rano.jpg",12],["poludnie.jpg",16],["wieczor.jpg",19]];
  3. $('div.time').each(function(){
  4. var str=IMG[0][0];
  5. var godz=parseInt($(this).text()); //tylko dla pełnych godzin w divach
  6. for(var i=1;i<IMG.length;i++)
  7. if((godz>IMG[i-1][1])&&(godz<=IMG[i][1])) str=IMG[i][0];
  8. $(this).next().html("<img src="+str+">");
  9. });
Crozin
Podstawowe pytanie: po co chcesz skracać i tak krótki kod?
marcus755
Genialnie,
Wielkie Dzięki - Działa - The Beściaku;-)

a jak zrobić dla pólnocy?

http://jsfiddle.net/t4p54td5/3/

bo ani jak wpisuję 24 ani 0 nie działa....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.