Я хотел бы иметь возможность «переместить» узел DOM (LI) в контентном DIV на следующий самый высокий UL с помощью JQuery. Таким образом, в следующем ...Переместить LI на один уровень во вложенном UL с помощью JQuery
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3
<ul>
<li>item A</li>
<li>item B</li>
<li>item C</li>
</ul>
</li>
</ul>
Я хотел бы быть в состоянии переместить пункт B до уровня к UL, содержащих пункты 1,2 и 3. Это текущий код, который не работает какой-либо причине (его все сочетания клавиш на основе, в зависимости от того, где находится курсор при выполнении, следовательно,() стратегия GetSelection):
выбрать текущий узел ...
var $current_node = document.getSelection().anchorNode.parentElement;
«перемещение» текущий узел к второму родительскому UL ([0] является непосредственным UL, мы уже в пределах) ...
$($current_node).parents("ul")[1].append($current_node);
К сожалению, отчеты консоли эта ошибка ...
Uncaught TypeError:. $ (...) родители (...) [1] .append не является функцией
Что мне не хватает? У меня такое чувство, что я не понимаю разницу между объектом JQuery и элементом DOM, выбранным с помощью Javascript. Я должен был пошевелиться, чтобы выяснить, что $current_node
нужно было обернуть в $()
, чтобы иметь доступ к .parent()
, но я думаю, что я все еще не могу найти что-то довольно простое. Благодаря!
Редактировать: Я не обращаю внимания на структуру HTML, это 'item 3' и' li', содержащие 'ul'? – Stefan
[#] разбивает элемент из объекта jQuery, который содержит его. append - это функция jQuery, над которой вы больше не работаете. используйте eq (#) вместо [#] в этом случае, чтобы сохранить объект jQuery. Это является причиной вашего Uncaught TypeError. Возможно, это не все ваши проблемы. – Taplar
Я знаю, что это выглядит странно @HenryDev, но структура точна для вложенного списка UL. Проверьте: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_lists2 – Hank