2016-09-19 13 views
0

私は、使用する必要があり、どのように動作するかわからない、外部ソフトウェアによって自動的に生成されるテーブルを持っています。DOMテーブル内のテキストを変更する

datafld == "n0"でテーブル内の項目を15HS01 15F24:HS632401.COUTから15F24に変更しようとしています。

私はこのコードを使用しようとしています:

// Get all the tables in the document. 
var doc_tables = document.all.tags("TABLE"); 
for (ii = 0; ii < doc_tables.length; ii++) 
{ 
// Process each table. 
FireZone(doc_tables(ii).id) 
} 


// Access the data table object (use the dataFld string) 
function FireZone(tableID) 
{ 
// Get the 'specified' table object. 
var table = eval("document.all." + tableID); 

// Skip the header rows and get to the data rows in table 
var nHeadRows = table.rows.length - table.all.tags("TBODY").length; 

// Iterate all rows in table.... 
if(table.rows.length > 0) 
{ 
    table 
    for (i=nHeadRows; i < table.rows.length; i++) 
    { 
     table(i).width = 1200; 
     // Iterate all cells in each row - 

     for (j=0; j < table.rows(i).cells.length; j++) 
     { 

      // Locate cells by "dataFld" - interested in "n0" binding 
      // Get the Cell value 
      for (k=0; k < table.rows(i).cells(j).children.length; k++) 
      { 
       if(table.rows(i).cells(j).children[k].dataFld == "n0") 
       { 
        var value = table.rows(i).cells(j).children[k].innerText; 
        if (value.search("15F") != -1) 
        { 
         table.rows(i).cells(j).children[k].innerText = value.substr(value.search("15F",5)); 
        } 
       } 
      } 
     } 
    } 
} 
} 

しかし、このコードは何もしていないよう、またそれはしかし、エラーをスローしない何らかの理由

各行に対応するHTMLブロックは次のようになります。

<TBODY> 

<TR> 

<TD style="FONT-FAMILY: Georgia, serif; COLOR: white" noWrap><SPAN dataFld=t0>9/16/2016 11:33:51 AM</SPAN></TD> 

<TD style="FONT-FAMILY: Georgia, serif; COLOR: white"><SPAN dataFld=n0>15HS01 15F24:HS632401.COUT</SPAN></TD> 

<TD style="FONT-FAMILY: Georgia, serif; COLOR: white" noWrap><SPAN dataFld=v0>0</SPAN></TD></TR></TBODY> 

スクリプトが確実に実行されているので、任意の助けをいただければ幸いです。

答えて

0

希望これは、私はあなたのコメントのためのあなたのコード

// Get all the tables in the document. 
 
var doc_tables = document.querySelectorAll("TABLE"); 
 

 
for (ii = 0; ii < doc_tables.length; ii++) 
 
{ 
 
    console.log(doc_tables[ii].getAttribute("id")) 
 
// Process each table. 
 
FireZone(doc_tables[ii]) 
 

 
} 
 

 

 
// Access the data table object (use the dataFld string) 
 
function FireZone(table) 
 
{ 
 
// Get the 'specified' table object. 
 
var table = eval(table); 
 

 
var tds = table.querySelectorAll("td"); 
 
// Iterate all rows in table.... 
 
if(tds.length > 0) 
 
{ 
 
    for (i=0; i < tds.length; i++) 
 
    { 
 
        var value = tds[i].innerText; 
 
        
 
        if (value.indexOf("15F") != -1) 
 
        { 
 
         var newValue = value.substr(value.indexOf("15F"),5); 
 
         console.log(newValue); 
 
         tds[i].innerText = value.substr(value.indexOf("15F",5)); 
 
        } 
 
    } 
 
} 
 
}
td {color:#000}
<table border="1"> 
 
<TBODY> 
 

 
<TR> 
 

 
<TD style="FONT-FAMILY: Georgia, serif; COLOR: white" noWrap><SPAN dataFld=t0>9/16/2016 11:33:51 AM</SPAN></TD> 
 

 
<TD style="FONT-FAMILY: Georgia, serif; COLOR: white"><SPAN dataFld=n0>15HS01 15F24:HS632401.COUT</SPAN></TD> 
 

 
<TD style="FONT-FAMILY: Georgia, serif; COLOR: white" noWrap><SPAN dataFld=v0>0</SPAN></TD></TR></TBODY> 
 
    </table>

+0

おかげで、いくつかのjavascriptのエラーを発見した、と開始するのに役立ちます、私は 'テーブルはメソッドが含まれていないというエラーを取得していますquerySelectorAll' –

関連する問題