我希望能夠使用Jquery將可持續使用的DIV中的DOM節點(LI)「移動」到下一個最高UL。所以在下面......使用JQuery將LI上移到嵌套UL中的一個級別
<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);
不幸的是,控制檯報告這個錯誤...
遺漏的類型錯誤:$(...)父母(...)[1] .append不是一個函數
我錯過了什麼?我有一種感覺,我不理解JQuery對象和使用Javascript選擇的DOM元素之間的區別。我不得不揣摩$current_node
需要包裝$()
有權訪問.parent()
,但我認爲我仍然在一些非常基本的東西。謝謝!
編輯:我錯誤的HTML結構,是'項目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