Witam,
napisałem kod zmieniający elementy DOM miejscami:
  1. /**
  2. * Swaps DOM elements with each other moving one above/below second
  3. *
  4. * @param DOMElement obj Object to move
  5. * @param int direction 1 = move up, -1 = move down
  6. */
  7. function swap(obj, direction) {
  8. if (direction == 1) { // move up
  9. var swapWith = obj.getPrevious();
  10.  
  11. if (swapWith != null) {
  12. swapWith.injectAfter(obj);
  13. }
  14. }
  15. else if (direction == -1) { // move down
  16. var swapWith = obj.getNext();
  17.  
  18. if (swapWith != null) {
  19. swapWith.injectBefore(obj);
  20. }
  21. }
  22. }

Pod Operą i Firefoxem całość działa bez najmniejszego zająknięcia, natomiast IE7 wyrzuca:
Kod
Obiekt nie obsługuje tej właściwości lub metody.

W jaki inny sposób mogę pobrać poprzednik/następnik danego elementu?

Pozdrawiam,
pion

PS: pod obj u siebie podstawiam <li>

// EDIT:
Rozwiązane. Wystarczyło używać:
  1. x = new Element("x");

zamiast:
  1. x = document.createElement("x");

guitar.gif