是否可以从加载的DOM
中删除元素而不创建新元素?例如,类似这样的事情:
$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTML($html);
foreach($dom->getElementsByTagName('a') as $href)
if($href->nodeValue == 'First')
//delete
轻松:
$href->parentNode->removeChild($href);
这花了我一段时间才弄明白,所以这里有一些澄清:
如果要从循环中删除元素(如OP的示例),则需要向后循环
$elements = $completePage->getElementsByTagName('a');
for ($i = $elements->length; --$i >= 0; ) {
$href = $elements->item($i);
$href->parentNode->removeChild($href);
}
DOMNodeList文档:如果向后迭代,可以修改甚至删除DOMNodeList中的节点
通过告诉父节点删除子节点来删除节点:
$href->parentNode->removeChild($href);
请参见DOMNode::$家长节点
Docs和DOMNode::Remvechild()
Docs。
也请参阅:
问题内容: 是否可以从加载中删除元素而不创建新元素?例如这样的事情: 问题答案: 通过告诉父节点删除子节点来删除该节点: 请参阅文档 和 文档 。
问题内容: 我的JsonArray是 现在,我要从此JsonArray中删除ID,ManualScheduled,已选中, 我尝试在JAVA中使用和。但是什么也没发生。我删除阵列项目错了吗? 我正在使用JAVA作为技术。 问题答案: 您所拥有的是一系列对象。因此,您将不得不遍历数组并从 每个 对象中删除必要的数据,例如 我假设您正在使用and ,但是无论使用什么JSON处理库,主体都保持不变。 如
问题内容: 我是一个新手。有人可以告诉我如何使用原始Javascript(而不是jQuery)删除HTML元素。 当我单击“提交”按钮时,会在很短的时间内消失然后立即出现。单击按钮时,我想完全删除该元素。 问题答案: 发生的情况是正在提交表单,因此页面(带有其原始内容)正在刷新。您正在通过“提交”按钮处理事件。 如果要删除元素 而不 提交表单,请改为处理表单上的事件,然后从处理程序中返回: HTM
问题内容: 我陷入了XML和Python的困境。任务很简单,但到目前为止我还无法解决,花了那么长时间。我是来这里咨询如何用几行解决它的。 感谢您对遍历树的任何帮助。我总是以太多或太少的元素结束。元素可以无限制地嵌套。给出的例子只是一个例子。我会接受任何解决方案,而不是对dom,minidom,sax等等不挑剔。 我有一个与此类似的XML文件: 我需要的是-解析XML并编写一个新文件。新文件应包含给
问题内容: 想象一下,我有以下类似的东西修改 如何在不影响任何子元素的情况下从DOM中仅删除(仅文本)“第一”,“第二”和“第三”。 问题答案: 如果要删除所有子文本节点,则可以使用,然后将匹配集减少为仅文本节点: 注意 :这将保留子元素上所有现有的事件处理程序,使用答案不会做(因为从DOM中删除了这些元素并重新添加了这些元素)。 注2 :一些链接的问题中的答案显示的代码与我的答案中的代码相似,但
问题内容: 我想使用此forEach循环从列表中删除一个元素。 问题答案: 您 不应该 修改要循环的数组。不过,您可以制作一个新的: 为什么不应该修改要循环的数组。