![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Na stronie dynamicznie generuje się taki kod. Próbuje wykasować wszystkie divy z content_normal w następujący sposób:
Kasuje to za każdym razem tą samą część divów. Gdy w pętli zrobię item(0), to kasuje też za każdym razem część (inną) divów. Być może czegoś nie rozumiem i źle coś robię, w takim razie czego nie rozumiem? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował nmts 16.07.2009, 18:44:17 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Jak możesz to rozwiń to zdanie:
Kod Kasuje to za każdym razem tą samą część divów. Gdy w pętli zrobię item(0), to kasuje też za każdym razem część (inną) divów. Sam kod na pierwszy rzut oka wygląda ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przed chwilą zbadałem sprawę dokładnie i wiem, że bez względu na ilość elementów w content_normal, zawsze kasuje dokładnie połowę tych elementów (no chyba, że nieparzysta ilość). MessagesA.length zwraca poprawną ilość elementów tablicy. Myślę, że to może być cenna wskazówka, ale ja nadal tego nie rozumiem. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Dodatkowo jeśli w item(i), za i podstawie jakąś liczbę to kasuje też chyba połowę divów i nie widzę, żadnej zależności dlaczego akurat te, a nie te drugie. Rozumiem to tak, że jeden element tablicy jest odwołaniem do połowy divów, ale dlaczego tak jest? Może brzmi to dziwnie, ale nie zmyśliłem tego. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ten post edytował nmts 16.07.2009, 19:11:39 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tak to jest jak się dokumentacji nie czyta (mówię o sobie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ): prawidłowy kod:
Kod var content = document.getElementById('content_normal'); lub var messagesA = content.getElementsByTagName('div'); for(var i=0; i<messagesA.length; i++){ content.removeChild(messagesA[i--]); } Kod var content = document.getElementById('content_normal'); var messagesA = content.getElementsByTagName('div'); x = messagesA.length; for(var i=0; i<x; i++) { content.removeChild(messagesA[0]); } 2 sposób IMO lepszy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) I na szybko wyjaśniam - w chwili usuwania zmienia się ilość divów w zmiennej messagesA, podczas gdy i++ stale rośnie - ciężko to wyjaśnić - najlepiej popatrz co masz w zmiennych w każdym w kroku w pętli |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Brawo, działa i nawet rozumiem. Sądziłem, że zawartość zmiennej jest stała i niezmienna.
Podam jeszcze trzecie rozwiązanie, wystarczy nie ikrementować: (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Kod for(var i=0; i<messagesA.length; i){
content.removeChild(messagesA.item(i)); } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 22:37 |