按钮在执行名为remove()的函数后从html页面中删除
Button is removed from html page after executing function which name is remove()
谁能解释为什么这段代码将删除按钮后点击FF和Chrome?IE将显示一个警告。
<html>
<head>
<script>
function remove()
{
alert('test');
}
</script>
</head>
<body>
<input type="button" onclick="remove();" value="Remove"/>
</body>
</html>
因为javascript有一个remove方法。将函数命名为abcd就可以了:
<html>
<head>
<script>
function abcd()
{
alert('test');
}
</script>
</head>
<body>
<input type="button" onclick="abcd();" value="Remove"/>
</body>
</html>
不要使用内联事件处理程序,或者至少知道自己在做什么。
问题是元素本身的属性在内联事件处理程序的范围内,DOM节点有一个remove
方法*****。因此,remove()
等价于this.remove()
,即调用按钮的remove
方法。
解决方案:
- 重命名函数
- 使用不同的方式绑定事件处理程序
*:这是一个相对较新的API, IE还不支持,所以它在IE中工作得很好
使用内联事件处理程序通常被认为是不好的做法,因为您要求浏览器从HTML字符串解析javascript事件,一个更好的方法是:
<html>
<head>
<script>
window.addEventListener("load",function(){
window.myButton = document.getElementById("myButton");
window.myButton.addEventListener("click",myButtonFunction);
});
function myButtonFunction()
{
alert('test');
}
</script>
</head>
<body>
<input id="myButton" type="button" value="Remove"/>
</body>
</html>
也不需要将其声明为窗口变量(全局),除非您想在函数中访问它。(但也可以通过document.getElementById("myButton")再次访问它)
相关文章:
- 如何删除多行HTML排列中的空白
- 删除对HTML元素的拖动
- 如何在HTML输入字段中添加不可删除的后缀
- 如何从 HTML 查询中删除项目
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- 删除“;NaN”;来自HTML文档
- 如何使用javascript在html表中删除字符串
- 使用JavaScript在HTML中动态添加和删除必需的标记
- HTML不是'删除数据项时未更改
- 删除HTML节点而不删除其子节点
- 如何筛选要写入新文档的HTML,删除JavaScript中的某些类和/或ID
- 使用javascript或JQuery在HTML中删除当前分区的按钮
- 我该如何为video.js制作一个插件,在HTML标题中添加和删除三角形
- 从 jQuery 中的 HTML 对象中删除禁用的属性
- 删除引导开关 HTML 元素
- 是否分配给内部 HTML 删除 HTML 子树
- Javascript使用html删除旧元素
- 流星账户-登录表单更改HTML删除下拉JS
- Javascript html删除表边框