使用纯javascript删除指定ID属性之前的所有元素

使用纯javascript删除指定ID属性之前的所有元素,javascript,dom,Javascript,Dom,我正在使用一个web服务来查询票务界面,并收回在任何时间点打开的所有支持票证,将它们显示在iframe中一个漂亮整洁的表格中,作为web应用程序的一部分。我的应用程序是用PL/SQL编写的,但是我使用它来构建HTML页面和iframe中显示的内容。我的主要问题是,由于票证是由电子邮件内容组成的,因此在电子邮件内容的顶部包含了大量无用的垃圾(主要是标签)和不相关的文本,这使得我的界面看起来毫无意义 在我的代码中,我将所需内容的主要区域包装在ID为“ticketsTable”的表中,并希望删除ifr

我正在使用一个web服务来查询票务界面,并收回在任何时间点打开的所有支持票证,将它们显示在iframe中一个漂亮整洁的表格中,作为web应用程序的一部分。我的应用程序是用PL/SQL编写的,但是我使用它来构建HTML页面和iframe中显示的内容。我的主要问题是,由于票证是由电子邮件内容组成的,因此在电子邮件内容的顶部包含了大量无用的垃圾(主要是标签)和不相关的文本,这使得我的界面看起来毫无意义

在我的代码中,我将所需内容的主要区域包装在ID为“ticketsTable”的表中,并希望删除iframe中仅在此tickets表之前出现的任何元素或内容

通常我会使用jQuery执行此任务:

$("#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++;
    }
}