javascript - 如何移动
- 给另一个
问题描述
<ul id="List">
<li class="li">1</li>
<li class="li">2</li>
</ul>
<ul id="List2"></ul>
const items = document.querySelectorAll(".li");
for(var i = 0; i < items.length; i++){
items[i].onclick = function(){
const list = document.getElementById("List2");
list.insertBefore(items[i], list.childNodes[0]);
}
}
我试图使用该方法将单击的li
元素移动到另一个元素,但是当我单击其中一个 li 元素时它没有做任何事情,我该怎么做?还是我做错了什么?先谢谢了ul
insertBefore
解决方案
将点击处理程序分配给原始 UL 元素 - 否则即使附加到目标 UL (List2),您的 LI 元素也会交换位置
使用Event.target.closest("li")检索 LI 元素
最后,使用Element.append()
const EL_list = document.querySelector("#List");
const EL_list2 = document.querySelector("#List2");
EL_list.addEventListener("click", (ev) => {
const EL_LI = ev.target.closest("li");
EL_list2.append(EL_LI);
});
#List2{background:gold;}
<ul id="List">
<li class="li">1</li>
<li class="li">2</li>
</ul>
<ul id="List2"></ul>
提示:onclick
除非您从内存中创建全新的元素,否则切勿使用。改用更好的附加方法Element.addEventListener()
推荐阅读
- flutter - 用 textformfield 填充列表视图
- python - 在 Python 中分配多个列的任何更简单的方法,例如 R data.table :=
- javascript - 如何通过在js中迭代对象来过滤对象
- haskell - 帕斯卡三角形使用 Haskell 函数查找位置 x,y
- c# - 如何防止 Stimulsoft 报告中的数字自动舍入?
- javascript - JS管理4个进度条
- terraform - 重新使用 terraform.tfvars 中的值
- spring-boot - 或 Spring Data MongoDB 中的运算符标准
- suitescript2.0 - Suitescript 2.0 添加第三方库
- python - Python-多线程:分段错误