使用JQuery在嵌套的UL中将LI向上移动一级

时间:2016-11-26 15:58:44

标签: jquery list nested append parent

我希望能够"移动"使用Jquery在可信任的DIV中到达下一个最高UL的DOM节点(LI)。所以在下面......

<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向上移动到包含项目1,2和3的UL。这是当前的代码,无论出于何种原因都不起作用(基于所有键盘快捷键,取决于游标执行的位置,因此getSelection()策略:

选择当前节点......

var $current_node = document.getSelection().anchorNode.parentElement;

&#34;移动&#34;当前节点到第二个父UL([0]是我们已经在的直接UL)...

$($current_node).parents("ul")[1].append($current_node);

不幸的是,控制台报告了此错误......

未捕获TypeError:$(...)。parents(...)[1] .append不是函数

我错过了什么?我有一种感觉,我不理解JQuery对象和使用Javascript选择的DOM元素之间的区别。我不得不想知道$current_node需要包含在$()才能访问.parent(),但我认为我仍然处于非常基本的状态。谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个有效的解决方案。希望它有所帮助!

$(document).ready(function(){
	var elementToBeMoved = $("ul  > li:eq(4)");
	$("ul").append(elementToBeMoved);
	$("ul  > li:eq(5)").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<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>

答案 1 :(得分:0)

我发布这个答案是因为我认为这是我遇到问题的核心问题,可能与上面解释/回答的问题略有不同。

product page: http ://www.example.com/Some-Product-pd123456.html
product category: http ://www.example.com/Product-Cat-pl12345.html
page a: http ://www.example.com/About-Us.html
page b: http ://www.example.com/Contactus.html

这是Javascript和JQuery的“传递”,我无法理解。