2016-11-28 11 views
-1

DOMを使用して表を編集する場合、指定したセルの の内容をどのように編集しますか?
私はw3Schoolsでさまざまな方法を調べてみましたが、コンソールは値がnullであることを示すこのメッセージを続けています。誰かが助けることができますか?DOMを使用してテーブルの値を変更するにはどうすればよいですか?

これは私が編集しようとしているテーブルのHTMLです:

<div id="courseSummaryContainer" class="tab"> 
    <table cellspacing="0" class="summaryTable courseSummary smallFontTable" summary="Health Care by province"> 
     <thead><tr> 
      <th>Name</th> 
      <th>Description</th> 
      <th>Date of entry</th> 
      <th>Rating</th> 
      <th>Grade</th> 
      <th>Submission entry type</th> 
     </tr></thead> 
     <tbody> 
     <tr class="row-even"> 
      <td>Illinois</td> 
      <td>Online system</td> 
      <td>201602</td> 
      <td>0100</td> 
      <td>5</td> 
      <td>Final</td> 
     </tr> 
     <tr class="row-odd"> 
      <td>Alabama</td> 
      <td>Regional area health</td> 
      <td>201606</td> 
      <td>0100</td> 
      <td>7</td> 
      <td>Final</td> 
     </tr> 
     </tbody> 
    </table> 
</div> 

私が試した:

document.getElementById("table.summaryTable.courseSummary.sm‌​allFontTable").rows[‌​0].cells; x[0].innerHTML = "NEW CONTENT"; 

をしかし、それは動作しませんでした。

+0

あなたがしようとした何JavaScriptを追加しますか? – Mani

+1

document.getElementById( "table.summaryTable.courseSummary.smallFontTable")。rows [0] .cells; x [0] .innerHTML = "NEW CONTENT"; – marshmellooooooos

+1

これは私が使用したものです – marshmellooooooos

答えて

0

使用テーブルのidとしてみてください

<table cellspacing="0" id="courseSummaryContainer" class="summaryTable courseSummary smallFontTable" summary="Health Care by province"> 
 
     <thead> 
 
      <tr> 
 
       <th>Name</th> 
 
       <th>Description</th> 
 
       <th>Date of entry</th> 
 
       <th>Rating</th> 
 
       <th>Grade</th> 
 
       <th>Submission entry type</th> 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 
      <tr class="row-even"> 
 
       <td>Illinois</td> 
 
       <td>Online system</td> 
 
       <td>201602</td> 
 
       <td>0100</td> 
 
       <td>5</td> 
 
       <td>Final</td> 
 
      </tr> 
 
      <tr class="row-odd"> 
 
       <td>Alabama</td> 
 
       <td>Regional area health</td> 
 
       <td>201606</td> 
 
       <td>0100</td> 
 
       <td>7</td> 
 
       <td>Final</td> 
 
       </tr> 
 
      </tbody> 
 
    </table> 
 

 

 
<script> 
 

 
var x = document.getElementById("courseSummaryContainer").rows[0].cells; 
 
x[0].innerHTML = "NEW CONTENT"; 
 

 
</script>

+0

それは私に次のエラーを与えています: "VM52:1未キャッチタイプエラー:未定義のプロパティ '0'を読み取ることができません – marshmellooooooos

+0

テーブルに行がない場合、エラーが表示されます。テーブルに少なくとも1つの行がある場合、それは動作します。上のだけでランとチェック – Mani

+0

これは彼がそのようなHTMLを事前に変更することはできませんので、OPのためには動作しません。彼は自分のブラウザに提供されたページを制御できません。これは* userscripts *の質問です。 –

1

table.summaryTable.courseSummary.sm‌​allFontTableは、あなたのテーブルのIDではないので、getElementByIdは動作しません。

このテーブルにはIDはありませんが、3つのCSSクラスがあります。ここにはa tutorial on the differenceがあります。
また、the CSS Selectors reference at MDNを参照してください。

getElementByIdは使用できませんが、document.querySelectorDocを使用できます。

以下のスニペットのコードは、courseSummaryContainer divに含まれるクラスcourseSummaryの最初のテーブルを選択します。

最後に、innerHTMLを使用しないでください。 Bad things come to those who do

var csTable = document.querySelector ("#courseSummaryContainer table.courseSummary"); 
 
if (csTable) { 
 
    csTable.rows[0].cells[0].textContent = "NEW CONTENT"; 
 
}
td, th { 
 
    border: 1px solid gray; 
 
    padding: 0.2ex 1ex; 
 
} 
 
table { border-collapse: collapse;}
<div id="courseSummaryContainer" class="tab"> 
 
    <table class="summaryTable courseSummary smallFontTable"> 
 
     <thead><tr> 
 
      <th>Name</th> 
 
      <th>Description</th> 
 
      <th>Date of entry</th> 
 
      <th>Rating</th> 
 
      <th>Grade</th> 
 
     </tr></thead> 
 
     <tbody> 
 
     <tr class="row-even"> 
 
      <td>Illinois</td> 
 
      <td>Online system</td> 
 
      <td>201602</td> 
 
      <td>0100</td> 
 
      <td>5</td> 
 
     </tr> 
 
     <tr class="row-odd"> 
 
      <td>Alabama</td> 
 
      <td>Regional area health</td> 
 
      <td>201606</td> 
 
      <td>0100</td> 
 
      <td>7</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 
</div>

+0

これをDOMコードに変換するにはどうすればよいですか? – marshmellooooooos

+0

これはすでに100%DOMコードです。 (しかし、あなたはjQueryを使うのが賢明でしょう。) "DOM"を探します。これは、Webページとのインターフェース用の特別なjavascript API以外のものではありません。この場合、 'document.querySelector'です。 –

+0

私はDOMに関するチュートリアルを見て、それに関する文書を読んできました。私はあなたのコードを使用し、成功なしでtampermonkeyでそれを実行しようとしました。これで私のアプローチに何か問題はありますか?​​要素の「Alabama」を「Georgia」に変更したい場合は、どのようなコマンドを使用しますか? – marshmellooooooos

関連する問題