为什么Node.removeChild(Old Child)没有't在函数中工作
Why Node.removeChild(Old Child) doesn't works in functions?
我有一个按钮,当我点击它时,我想打印hello加上按钮的innerHTML并删除它自己:
<script type="text/javascript">
function MyFunc(element) {
var parentNd = element.parentElement
parentNd.innerHTML += "<p>Hello</p>" + element.innerHTML
parentNd.removeChild(element)
}
</script>
<button onclick="MyFunc(this);">My Button</button>
但它只是打印文本,不会自行删除为什么?
通过重写父级的innerHTML,您将用副本替换按钮(因为定义按钮的HTML将被重新解析)。因此,对element
的引用指向一个不再在DOM中的按钮,因此删除它没有任何效果。
我建议您停止使用innerHTML,用createElement
创建p元素,然后调用replaceChild
用按钮交换它。
这很好!
<script type="text/javascript">
function MyFunc(element) {
var parentNd = element.parentElement
parentNd.removeChild(element)
parentNd.innerHTML += "<p>Hello</p>" + element.innerHTML
}
</script>
<button onclick="MyFunc(this);">My Button</button>
使用jquery
<button id="x" onclick="MyFunc(this);">My Button</button>
function MyFunc(element) {
var parentNd = element.parentElement
parentNd.innerHTML += "<p>Hello</p>" + element.innerHTML
$("#x").remove();
}
演示
或者使用下面的代码,它也将工作
function MyFunc(element) {
var parentNd = element.parentElement
document.write(element.innerHTML);
parentNd.removeChild(element);
}
注意:我不喜欢这种方法,我认为最好的想法是在onclick事件
相关文章:
- onmouseout函数工作不正常
- 我无法使onmouseout函数工作
- Javascript”;结束”;函数工作不稳定
- HTML JavaScript,我如何能够通过给每个元素一个不同的Id来使用JavaScript使这个函数工作
- Javascript:onclick函数工作一次,页面就会恢复到原来的状态
- jQuery toggle()函数工作不正常
- Node.js npm opn-can't使回调函数工作
- 添加两个数字的JavaScript函数工作不正常
- 调用在Jquery中未作为链接函数工作
- 将PHP变量传递给Javascript不能通过PHP函数工作(与全局变量无关)
- 为什么我需要在 javascript 函数工作之前按提交按钮 2 次
- 使 JavaScript 函数工作时遇到麻烦
- 如何使 clearInterval 函数工作
- 如何使 then 函数工作
- 如何让我的包含函数工作
- Promise.all 不应该作为传递给 .then 的函数工作
- 我无法让它作为 JavaScript 函数工作(我在控制台时得到我想要的返回值.log但我不能将其作为函数调用)
- JavaScript on change 函数工作得不好
- jquery next()函数工作不正常
- Jquery hasClass()函数工作不正常