public function swap($element) { if (!$element instanceof self) { $element = new self($element); } $_self = $this->reproduce(); $_elem = $element->reproduce(); $this->insertBefore($_self); $element->insertBefore($_elem); $parent = $this->getParent()->getRawElement(); $parent->replaceChild($element->getRawElement(), $this->getRawElement()); $parent->replaceChild($_self->getRawElement(), $_elem->getRawElement()); }