我是一个新手。有人可以告诉我如何使用原始Javascript(而不是jQuery)删除HTML元素。
index.html
<html>
<head>
<script type="text/javascript" src="myscripts.js" > </script>
<style>
#dummy {
min-width: 200px;
min-height: 200px;
max-width: 200px;
max-height: 200px;
background-color: #fff000;
}
</style>
</head>
<body>
<div id="dummy"></div>
<form>
<input type="submit" value="Remove DUMMY" onclick="removeDummy(); "/>
</form>
</body>
myscripts.js
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
}
当我单击“提交”按钮时,会在很短的时间内消失然后立即出现。单击按钮时,我想完全删除该元素。
发生的情况是正在提交表单,因此页面(带有其原始内容)正在刷新。您正在click
通过“提交”按钮处理事件。
如果要删除元素 而不 提交表单,请submit
改为处理表单上的事件,然后false
从处理程序中返回:
HTML:
<form onsubmit="return removeDummy(); ">
<input type="submit" value="Remove DUMMY"/>
</form>
JavaScript:
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
return false;
}
但是您根本不需要(或想要)一个表单,如果它的唯一目的是删除虚拟div,则不需要。代替:
HTML:
<input type="button" value="Remove DUMMY" onclick="removeDummy()" />
JavaScript:
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
return false;
}
但是
,这种设置事件处理程序的样式是过时的。您似乎有很好的直觉,因为您的JavaScript代码位于其自己的文件中,诸如此类。下一步是更进一步,避免使用onXYZ
属性来挂接事件处理程序。相反,在JavaScript中,您可以使用更新的方式(大约2000年)将它们连接起来:
HTML:
<input id='btnRemoveDummy' type="button" value="Remove DUMMY"/>
JavaScript:
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
return false;
}
function pageInit() {
// Hook up the "remove dummy" button
var btn = document.getElementById('btnRemoveDummy');
if (btn.addEventListener) {
// DOM2 standard
btn.addEventListener('click', removeDummy, false);
}
else if (btn.attachEvent) {
// IE (IE9 finally supports the above, though)
btn.attachEvent('onclick', removeDummy);
}
else {
// Really old or non-standard browser, try DOM0
btn.onclick = removeDummy;
}
}
…然后pageInit();
从script
页面末尾的标签body
(恰好在结束</body>
标签之前)或window
load
事件内进行调用,尽管这种调用发生在页面加载周期的 很晚 ,因此通常不适合挂接事件处理程序(例如, 在 所有图像最终加载 之后
发生)。
请注意,我不得不进行一些处理以应对浏览器差异。您可能需要一个用于挂接事件的函数,因此您不必每次都重复该逻辑。或者考虑使用类似jQuery,Prototype,YUI,Closure或其他几种库的库来为您平滑浏览器之间的差异。这是
非常重要的 了解底层的东西怎么回事,两者在JavaScript的基本面和DOM基本面方面,但库处理很多不一致的,同时还提供了很多方便的工具-
像挂钩事件处理程序的手段涉及浏览器差异。它们中的大多数还提供了一种设置功能的方式(例如pageInit
)在DOM准备好被操纵之前立即运行,而早于window
load
触发。
问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。
是否可以从加载的中删除元素而不创建新元素?例如,类似这样的事情:
问题内容: 我想使用简单HTML DOM删除文章中的所有图像,因此我可以轻松地为新闻自动收录器创建一小段文本,但是我还没有弄清楚如何使用它来删除元素。 基本上我会做 以HTML字符串形式获取内容 从内容中删除所有图像标签 将内容限制为x个字 输出。 有什么帮助吗? 问题答案: 没有用于删除元素的专用方法。您只需找到所有img元素,然后执行
问题内容: 我的JsonArray是 现在,我要从此JsonArray中删除ID,ManualScheduled,已选中, 我尝试在JAVA中使用和。但是什么也没发生。我删除阵列项目错了吗? 我正在使用JAVA作为技术。 问题答案: 您所拥有的是一系列对象。因此,您将不得不遍历数组并从 每个 对象中删除必要的数据,例如 我假设您正在使用and ,但是无论使用什么JSON处理库,主体都保持不变。 如
我有一个超文本标记语言
问题内容: 比方说: 对此: 我一直在寻找使用Mootools,jQuery甚至是(原始)JavaScript的方法,但是却不知道该怎么做。 问题答案: 使用jQuery,您可以执行以下操作: 快速链接到文档: 内容(): jQuery replaceWith( 内容 :[ 字符串 | 元素 | jQuery ]): jQuery