使用纯javascript删除指定ID属性之前的所有元素
我正在使用一个web服务来查询票务界面,并收回在任何时间点打开的所有支持票证,将它们显示在iframe中一个漂亮整洁的表格中,作为web应用程序的一部分。我的应用程序是用PL/SQL编写的,但是我使用它来构建HTML页面和iframe中显示的内容。我的主要问题是,由于票证是由电子邮件内容组成的,因此在电子邮件内容的顶部包含了大量无用的垃圾(主要是标签)和不相关的文本,这使得我的界面看起来毫无意义 在我的代码中,我将所需内容的主要区域包装在ID为“ticketsTable”的表中,并希望删除iframe中仅在此tickets表之前出现的任何元素或内容 通常我会使用jQuery执行此任务:使用纯javascript删除指定ID属性之前的所有元素,javascript,dom,Javascript,Dom,我正在使用一个web服务来查询票务界面,并收回在任何时间点打开的所有支持票证,将它们显示在iframe中一个漂亮整洁的表格中,作为web应用程序的一部分。我的应用程序是用PL/SQL编写的,但是我使用它来构建HTML页面和iframe中显示的内容。我的主要问题是,由于票证是由电子邮件内容组成的,因此在电子邮件内容的顶部包含了大量无用的垃圾(主要是标签)和不相关的文本,这使得我的界面看起来毫无意义 在我的代码中,我将所需内容的主要区域包装在ID为“ticketsTable”的表中,并希望删除ifr
$("#earliercontent").nextUntil("#ticketsTable").andSelf().remove();
但是,我们的系统是使用ExtJS构建的,因此我们希望避免jQuery库与此环境可能导致的任何潜在冲突。因此,我需要一种方法来处理和循环iframe的内容,删除在ticketTable id之前出现的所有元素和文本,从而消除所有不必要的内容
我已经试过了:
var last = null;
var curr = $('#page1');
while (curr.attr('id') != 'ticketsTable') {
if (last != null) {
last.remove();
}
last = curr;
curr = curr.next();
}
if (last != null) {
last.remove();
}
资料来源:
但是,由于电子邮件内容是可变的,因此我无法为脚本的开始指定特定的ID标记。因此,有没有一种替代方法(没有库,只有纯JavaScript)可以用来删除ticketsTable之前的所有元素和内容
我必须强调,票务表的内容必须保持完整。我只想删除正文中在此之前出现的内容。
var parent=document.getElementById(“父项”);
var stopID=“停止”;
var length=parent.childNodes.length,j=0;
对于(变量i=0;i
删除子节点时,数组会移动,因此,例如,如果需要删除前两个节点,则会调用removeChild以获取索引0两次。我自己也正准备对此进行说明,但由于您花时间回答,我已将您的回答标记为正确。
var parent = document.getElementById("parent");
var stopID = "stop";
var length = parent.childNodes.length, j = 0;
for(var i=0; i < length; i++){
if(parent.childNodes[j].id != stopID){
parent.removeChild(parent.childNodes[j]);
}
else{
j++;
}
}