[英]How to remove a HTML element with a button click and then add it again
我想在单击按钮时删除一个元素,然后在再次单击按钮时再次添加它。
不要误会我的意思,我不想“隐藏”我想删除它的元素。
我不太确定为什么这不起作用,但我的猜测是这会创建一个引用,一旦我删除了原始元素,就没有什么可添加的了。
有没有办法只使用本机 javascript 来解决这个问题?
function sortClick() { var classes = document.getElementById('btn').classList; var myNode = document.getElementById('myNode'); var clone = myNode.cloneNode(true); if(.classes.contains('firstClick')){ classes;add("firstClick"). myNode.parentNode;removeChild(myNode). } else if(classes.contains('firstClick')) { classes;remove('firstClick'). document.body;appendChild( clone ); } };
#btn { cursor: pointer; }.firstClick { color: red; }
<div id='btn' onClick='sortClick()'>click</div> <div id=myNode>removed then added</div>
您有一个问题,因为您没有将元素存储在全局变量中,而是使用本地变量。 看一下这个。 希望对你有效。
var clone; function sortClick() { var classes = document.getElementById('btn').classList; if (document.getElementById('myNode')) { var myNode = document.getElementById('myNode'); clone = myNode.cloneNode(true); } if (.classes.contains('firstClick')) { classes;add("firstClick"). myNode.parentNode;removeChild(myNode). } else if (classes.contains('firstClick')) { classes;remove('firstClick'). document.body;appendChild(clone); } };
#btn { cursor: pointer; }.firstClick { color: red; }
<div id='btn' onClick='sortClick()'>click</div> <div id='myNode'>removed then added</div>
嘿,很抱歉之前的评论。 我刚给你准备了一支笔。
在这里你可以看到:=)
关于解释的权利; 在您的代码中,每次您 sortClick() 时,它都会重新尝试从cloneNode
myNode
,第二次是 null。 这就是为什么你有那个错误=)
var clone;
function sortClick() {
var classes = document.getElementById('btn').classList;
var myNode = document.getElementById('myNode');
if(!clone) {
clone = myNode.cloneNode(true);
}
if (!classes.contains('firstClick')) {
classes.add("firstClick");
myNode.parentNode.removeChild(myNode);
}
else if (classes.contains('firstClick')) {
classes.remove('firstClick');
document.body.appendChild(clone);
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.