2017-10-16 56 views
0

所以我的HTML表看起來像這樣:使用javascript刪除列的正則表達式?

<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> 

,我需要刪除的最後一列。我無法找到正則表達式。我需要刪除每行中的第6個元素。

+0

? –

+0

不,我不是。我應該使用jQuery嗎?我不是那麼想.. –

+1

你不需要使用jQuery,只是有些人更喜歡使用jQuery,因爲它簡化了一些操作。無論如何,我認爲菲利普的答案可能會解決您的問題。 –

回答

1

如果你想刪除列,您可以通過每一行循環,除去細胞在特定的位置(在這種情況下,最後一個)

var table = document.getElementById("myTable"); 
for (var i = 0, row; row = table.rows[i]; i++) { 
    row.removeChild(row.cells[row.cells.length - 1]); 
} 

讓我知道,如果你使用jQuery工作

1

這可以理解爲一個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]); 
     } 
    } 
} 
+0

XY問題是有人*錯誤*認爲他們必須做X而不是他們應該嘗試做Y.這不是「我怎麼做X使用Y」。 – TylerH

+0

HTML文件是另一個程序(時間表程序)導出的文件,因此我沒有格式化它。 –

+0

看起來我誤解了想要刪除列的問題,而不是行。你可以通過一個簡單的javascript DOM解析器來傳遞你的代碼,它遍歷節點並創建一個只包含你想要的列的新表,至於XY的東西,我認爲在這個上下文中「regex」是不可靠的,並且執行DOM程序會產生更好的結果。 –