Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]Pobieranie id div'a i porównanie z aktualną datą
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sliderr
Na potrzeby mini strony staram się stworzyć pewien skrypt.

Jak ma działać w założeniu:
- Strona odświeża się co określony czas
- Sprawdzana jest aktualna data w formacie dzień.miesiąc.rok.godzina.minuty
- Ze strony chciałbym pobierać id pierwszego diva w containerze
- Następnie id tego diva miałoby być porównane z aktualną datą i jeśli są takie same div miałby być usunięty.

Na czym polega mój problem? Nie mogę zwrócić id div'a pobranego ze strony. Testując co zostało pobrane alert wyrzuca mi "undefinied".

Jeśli napiszę samo pobieranie w tej formie jak w kodzie poniżej to wyrzuca poprawne id, ale div'a "najniżej", a nie pierwszego. Pobieranie id z div

Jeśli ktoś byłby w stanie mi pomóc, aby:
- dało się porównywać aktualną datę z id pierwszego div containerze
- zmienić usuwanie div'a tak, aby nie trzeba było podawać jego id, ponieważ docelowo tych divów chciałbym, aby było dość sporo.

Z góry dzięki jeśli ktoś cokolwiek podpowie.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Untitled Document</title>
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6. <script type="text/javascript">
  7.  
  8. setInterval("moja_funkcja();",3000);
  9.  
  10. var aktualna;
  11.  
  12.  
  13. function clock() {
  14. var now = new Date();
  15. var outStr = now.getUTCDate()+'.'+ now.getUTCMonth()+'.'+ now.getFullYear()+'.'+ now.getHours()
  16.  
  17. +':'+now.getMinutes();
  18. aktualna = document.getElementById('clockDiv').innerHTML=outStr;
  19. setTimeout('clock()',1000);
  20. }
  21. clock();
  22.  
  23. var zestrony;
  24.  
  25. $("#container").children().each(function(n, i) {
  26. var id = this.id;
  27. zestrony = id;
  28.  
  29. });
  30.  
  31.  
  32.  
  33. function moja_funkcja() {
  34. alert(zestrony);
  35. if (ids==aktualna){
  36. $('div').remove('.29.6.2013.14:47');
  37. }
  38. }
  39.  
  40. </head>
  41.  
  42. <body onload="clock();">
  43. <div id="clockDiv"></div>
  44. <div id="container">
  45. <div id="29.6.2013.14:47">29.6.2013.14:47</div>
  46. <div id="inny">Inny</div>
  47. </div>
  48. </body>
  49. </html>
IProSoft
Jeśli ma to być pierwszy div to zamiast:
[JAVASCRIPT] pobierz, plaintext
  1. var zestrony;
  2.  
  3. $("#container").children().each(function(n, i) {
  4. var id = this.id;
  5. zestrony = id;
  6.  
  7. });
[JAVASCRIPT] pobierz, plaintext


użyj:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var zestrony = $("#container div:first-child").attr('id');
  3.  
[JAVASCRIPT] pobierz, plaintext
sliderr
Dzięki iProSoft za podpowiedź, pomogło smile.gif Popisałem jeszcze trochę kodu i więcej rzeczy działa. Aktualnie męczę się nad 2 problemami:

- Jak pętlą (w tym przypadku użyłem while) przejść po kolejnych div'ach i sprawdzać ich id oraz zliczać do zmiennej "inne", wszystkie divy o innych id aż do div'a o aktualnej dacie. Chodzi o to abym mógł później usunąć te elementy, które są przed aktualną datą i są już przestażałe.
- Jak wyjść z funkcji "moja_funkcja" po usunięciu div'a, tak aby całość kodu się ponownie wykonała, tj. znalazł nowy child_first czyli kolejnego div'a po tym usuniętym.

Aktualnie kod wygląda tak, dodałem parę alertów, żeby widzieć co się dzieje.

  1. <!DOCTYPE html>
  2. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  3. <title> - jsFiddle demo</title>
  4.  
  5. <script src="http://code.jquery.com/jquery-latest.js"></script>
  6.  
  7. <script type='text/javascript'>
  8.  
  9. setInterval("moja_funkcja();",3000);
  10.  
  11. var zestrony;
  12. var aktualna;
  13. var minuty;
  14.  
  15. //<![CDATA[
  16. $(window).load(function(){
  17.  
  18. zestrony = $("#container div:first-child").attr('id');
  19.  
  20. });//]]>
  21.  
  22. function clock() {
  23. var now = new Date();
  24. var outStr = now.getDate()+'.'+ now.getUTCMonth()+'.'+ now.getFullYear()+'.'+ now.getHours()+':'+now.getMinutes();
  25. aktualna = document.getElementById('clockDiv').innerHTML=outStr;
  26. setTimeout('clock()',1000);
  27.  
  28. }
  29. clock();
  30.  
  31.  
  32. function moja_funkcja() {
  33.  
  34. /* petla do sprawdzania ile elementow jest przed aktualną data */
  35. var inne = 0;
  36. var i = 0;
  37. while (i < 6) {
  38.  
  39. if (zestrony != aktualna) {
  40. alert('inne');
  41. inne++;
  42. } else {
  43. alert('takie same!');
  44. break;
  45. }
  46. i++;
  47. }
  48.  
  49. /* for (var i = 0; i < inne; i++) {
  50. $("#container div:first-child").remove();
  51. }*/
  52.  
  53.  
  54. if (zestrony == aktualna ) {
  55. alert('tak');
  56. $("#container div:first-child").remove();
  57. }
  58. else {
  59. alert(zestrony + ' ' + aktualna + ' nie'+' '+ inne);
  60. };
  61.  
  62. }
  63.  
  64.  
  65.  
  66. </head>
  67. <body onload="clock();">
  68. <div id="clockDiv"></div>
  69. <div id="container">
  70. <div id="30.6.2013.7:48">29.6.2013.23:44</div>
  71. <div id="29.6.2013.21:46">29.6.2013.21:49</div>
  72. <div id="29.6.2013.21:42">29.6.2013.21:49</div>
  73. <div id="29.6.2013.23:57">29.6.2013.23:44</div>
  74. <div id="30.6.2013.0:55">29.6.2013.23:44</div>
  75. <div id="29.6.2013.23:59">29.6.2013.23:44</div>
  76.  
  77. </div>
  78.  
  79.  
  80. </body>
  81.  
  82.  
  83. </html>
  84.  
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.