Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery]Pobieranie id div'a i porównanie z aktualną datą
sliderr
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.02.2007
Skąd: radom

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
IProSoft
post
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

Ostrzeżenie: (0%)
-----


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


Ten post edytował IProSoft 29.07.2013, 16:28:08
Go to the top of the page
+Quote Post
sliderr
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.02.2007
Skąd: radom

Ostrzeżenie: (0%)
-----


Dzięki iProSoft za podpowiedź, pomogło (IMG:style_emoticons/default/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.  
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 20:47