Немного неясно, какие именно требования предъявляются, поэтому несколько полезных советов и пара примеров, которые помогут вам начать:
1) Чтобы получить объект jQuery для элемента, используйте $
(он же jQuery
) и селектор CSS3:
var $element = $("CSS3_selector_for_element");
2) Чтобы удалить элемент, используйте remove
:
$element.remove();
3) Чтобы отсоединить элемент (чтобы вы могли вернуть его позже, не теряя его обработчики событий и т. Д.), Используйте detach
:
$element.detach();
4) Чтобы добавить или переместить элемент, используйте append
, appendTo
, before
, insertBefore
, after
, insertAfter
или, возможно, несколько других (если вы перемещаете его откуда-то еще, нет необходимости detach
сначала):
$element.appendTo(target);
или
jquery_object_for_target.append($element);
Очень простой пример перемещения li
с якорями из одного списка в другой при нажатии на якорь:
HTML:
<ul id='first'>
<li><a href='#'>Anchor One</a></li>
<li><a href='#'>Anchor Two</a></li>
<li><a href='#'>Anchor Three</a></li>
</ul>
<hr>
<ul id='second'>
<li><a href='#'>Anchor Four</a></li>
<li><a href='#'>Anchor Five</a></li>
<li><a href='#'>Anchor Six</a></li>
</ul>
JavaScript с использованием jQuery:
jQuery(function($) {
$("a").click(function() {
var $this, li, list, target;
$this = $(this);
li = $this.closest('li');
list = li.closest('ul');
target = list[0].id == 'first' ? '#second' : '#first';
$(target).append(li);
return false;
});
});
Живая копия
Если вы предпочитаете не выяснять, где находится li
, когда событие впервые, вы можете использовать delegate
для просмотра якорей внутри определенного списка (HTML-код такой же, как и выше):
jQuery(function($) {
$("#first").delegate('a', 'click', function() {
return moveContainingListItemTo(this, '#second');
});
$("#second").delegate('a', 'click', function() {
return moveContainingListItemTo(this, '#first');
});
function moveContainingListItemTo(element, target) {
$(element).closest('li').appendTo(target);
return false;
}
});
Живая копия