使用JavaScript从HTML中删除单个表

使用JavaScript从HTML中删除单个表,javascript,html,dom,Javascript,Html,Dom,这是我的问题:有一个内部问题跟踪系统,它有一个很好的摘要页面(开发人员分解的未解决问题的数量等)。然而,紧凑的摘要表被样板文件cruft(导航菜单、搜索框等)包围。我想将摘要表嵌入到我们团队的页面上,而不是周围的cruft。如果不是因为我感兴趣的桌子周围的积垢,使用标签将是一个微不足道的解决方案。幸运的是,所讨论的HTML表描述得很好:它是用一个常规标记定义的,它甚至有一个唯一的id分配给它。我想知道是否有一个简单的JavaScript技巧涉及DOM操作,我可以使用它在iframe中通过外科手术

这是我的问题:有一个内部问题跟踪系统,它有一个很好的摘要页面(开发人员分解的未解决问题的数量等)。然而,紧凑的摘要表被样板文件cruft(导航菜单、搜索框等)包围。我想将摘要表嵌入到我们团队的页面上,而不是周围的cruft。如果不是因为我感兴趣的桌子周围的积垢,使用标签将是一个微不足道的解决方案。幸运的是,所讨论的HTML表描述得很好:它是用一个常规标记定义的,它甚至有一个唯一的id分配给它。我想知道是否有一个简单的JavaScript技巧涉及DOM操作,我可以使用它在iframe中通过外科手术提取我感兴趣的表。这样,每当有人查看我们团队的主页时,报告总是最新的。

有什么简单的东西可以让你扩展吗

function scrapeTable(tableId)
        {
            var tables = document.getElementsByTagName("table");
            for (var i = 0; i < tables.length; i++)
            {
                if (tables[i].id == tableId)
                {
                    alert("<table>" + tables[i].innerHTML + "</table>");
                }
            }
        }
函数表(tableId)
{
var tables=document.getElementsByTagName(“表”);
对于(变量i=0;i
如果使用jQuery,可以非常轻松地提取表代码。现在,如果表中包含一些脚本块,事情可能会变得很奇怪;类似地,如果它依赖于一些样式表,请确保目标页面也有这些样式表


表是否由某种块级元素(a或其他)包围?如果是这样,那么您可以加载页面(AJAX或hidden iframe),通过“id”查找表,遍历到父级,然后将其html()值移动到目标块。如果没有适合的块级父级,那么可以尝试在目标位置重建一个空表标记,然后从源表中提取html()并将其放到那里;然而,有时事情开始变得有点奇怪,因为一些浏览器以有趣的方式处理表布局。但是可能会起作用。

团队和问题跟踪者是否在同一域/地址上

如果不是,那么您可能必须修改问题跟踪程序以获得所需的结果。出于安全原因,大多数浏览器不允许您跨不同域进行修改/访问

如果它们在同一个域上,那么您可能可以使用jQuery的load和选择器:

$("#destination").load("/path/to/table/ #tableid");

这是可行的,但是表的“innerHTML()”本身不包括表标记。如果浏览器可以将表内脏放入新构建的(空)表中,那么这可能不是什么大问题。是的,这是一个非常好的主意-我忘记了load()的选择器技巧。我就是这么做的,还有一个额外的技巧,就是将附件上传到问题跟踪器,这样我的JavaScript就可以从与摘要报告相同的域中提供。