使用javascript删除列的正则表达式?

使用javascript删除列的正则表达式?,javascript,html,Javascript,Html,因此,我的HTML表如下所示: <table class="mon_list" id="mon_list"> <tr class='list'> <th class="list" align="center"><b>Klasse(n)</b></th> <th class="list" align="center">Stunde</th> <

因此,我的HTML表如下所示:

<table class="mon_list" id="mon_list">
    <tr class='list'>
        <th class="list" align="center"><b>Klasse(n)</b></th>
        <th class="list" align="center">Stunde</th>
        <th class="list" align="center">Fach</th>
        <th class="list" align="center">Raum</th>
        <th class="list" align="center">Vertretungs-Text</th>
        <th class="list" align="center">Vertr-Text-2</th>
    </tr>
    <tr class='list odd'>
        <td class="list" align="center" style="background-color: #FFFFFF"><b>6.1</b></td>
        <td class="list" align="center" style="background-color: #FFFFFF">1 - 2</td>
        <td class="list" align="center" style="background-color: #FFFFFF">Ku</td>
        <td class="list" align="center" style="background-color: #FFFFFF">
            <s>312</s>006</td>
        <td class="list" align="center">&nbsp;</td>
        <td class="list" align="center">&nbsp;</td>
    </tr>
    ...
</table>

克拉斯(北)
震惊
法赫
劳姆
垂直文本
Vertr-Text-2
6.1
1 - 2
库
312006
...

我需要删除最后一列。我找不到这个的正则表达式。我需要删除每行中的第6个元素。

这可以理解为一个XY问题,即“如何使用Y做X”, 也许这个问题可以重新表述为“我如何做X”, 我认为在这种情况下Y是“正则表达式”

我也认为你的代码可以使用更好的格式,你介意编辑这个问题吗

在JavaScript中,您可以通过使用DOM removeChild()API来删除行,并传递列行的ID,如下所示:

var rows = document.getElementById("tableObj").querySelector("tr");
for(var i=0;i<rows.length;i++){
    var cols = rows[i].querySelector("td");
    for(var r=0;r<cols.length;r++){
        if(r == 3){ //i.e. delete fourth column
            rows[i].removeChild(cols[r]);
        }
    }
}
var rows=document.getElementById(“tableObj”).querySelector(“tr”);

对于(var i=0;i这可以理解为一个XY问题,即“我如何使用Y做X”, 也许这个问题可以重新表述为“我如何做X”, 我认为在这种情况下Y是“正则表达式”

我也认为你的代码可以使用更好的格式,你介意编辑这个问题吗

在JavaScript中,您可以通过使用DOM removeChild()API来删除行,并传递列行的ID,如下所示:

var rows = document.getElementById("tableObj").querySelector("tr");
for(var i=0;i<rows.length;i++){
    var cols = rows[i].querySelector("td");
    for(var r=0;r<cols.length;r++){
        if(r == 3){ //i.e. delete fourth column
            rows[i].removeChild(cols[r]);
        }
    }
}
var rows=document.getElementById(“tableObj”).querySelector(“tr”);

对于(var i=0;i如果要删除一列,可以循环遍历每一行并删除特定位置的单元格(在本例中为最后一行)


让我知道这是否有效如果你想删除一列,你可以在每一行中循环并删除特定位置的单元格(在本例中是最后一个)


让我知道这是否有效

你在使用jQuery吗?不,我没有。我应该使用jQuery吗?我不太喜欢。你不需要使用jQuery,只是有些人喜欢使用jQuery,因为它简化了一些操作。无论如何,我认为Felipe的答案可能会解决你的问题。用于操作HTML的正则表达式是一个糟糕的idea、 坚持使用DOM操作你使用jQuery吗?不,我不是。我应该使用jQuery吗?我不是很喜欢。你不需要使用jQuery,只是有些人喜欢使用jQuery,因为它简化了一些操作。无论如何,我认为Felipe的答案可能会解决你的问题。用于操作HTML的正则表达式是个坏主意。S勾选DOM操作XY问题是当有人错误地认为他们必须做X,而实际上他们应该尝试做Y。这不是“如何使用Y做X”。HTML文件是从另一个程序(时间表程序)导出的文件,因此我没有格式化它。看起来我误读了您想要删除列而不是行的问题。您可以通过一个简单的javascript DOM解析器传递代码,该解析器在节点上迭代,并创建一个新表,其中只包含您想要的列,至于XY,我认为是“regex”在这种情况下是不可靠的,执行DOM程序会产生更好的结果。我想我今天对regexpressions考虑得太多了,对此表示抱歉。无论如何,感谢您的建议,但Michaels解决方案对我来说非常有效。XY问题是当有人错误地认为他们必须执行X,而他们应该尝试执行Y时,却认为他们必须执行X。它不是“如何使用Y执行X”。HTML文件是从另一个程序(时间表程序)导出的文件,因此我没有格式化它。看起来我误读了您想要删除列而不是行的问题。您可以通过一个简单的javascript DOM解析器传递代码,该解析器在节点上迭代,并创建一个新表,其中只包含您想要的列,至于XY,我认为是“regex”在这种情况下是不可靠的,执行DOM程序会产生更好的结果。我想我今天对regexpressions考虑得太多了,对此表示抱歉。无论如何,谢谢你的建议,但是Michaels解决方案对我来说非常有效。