2016-10-19 3 views
1

私のテーブルの特定の値を他の値に置き換えるスクリプトを作成しようとしています。私はうまく動作するHTMLでテーブルを生成しました。私は、値の1/8" で最初の3行のそれぞれにおける第四列の要素を交換したい。上記のコードを使用してループのif文が==を認識しますが、<がJavascriptではなく<

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i < 3) { 
    cells[3].innerHTML = '1/8"'; 
} 
} 

が私のテーブルのために何もしません、しかし、次のコードを使用して第四に取って代わります私の値を持つ要素

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i == 3) { 
cells[3].innerHTML = '1/8"'; 
} 
} 

はなぜ仕事を==、しかし<ないん私は簡単にデバッグできるように、forループの出力をプリントアウトすることが簡単な方法はあります? - 。!イムコーディングに新しいのおかげ

編集:ここでは私が使用しているHTMLと、CSS )は、おそらく必要はありません

HTML5:

<div class="eo_product_listing_table"> 
<table class="tableizer-table"> 
<thead> 
    <tr class="tableizer-firstrow"> 

    <th>Item #</th> 
    <th>Type</th> 
    <th>Operting Temp.</th> 
    <th>O.D.</th> 
    <th>Length</th> 
    <th>Material</th> 
    <th>Junction</th> 
    <th>Price</th> 
    <th>Order</th> 
    </tr> 
</thead> 

<tbody> 
    <!--1/8--> 
    <!--6--> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$51.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-AAE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>6"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$51.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <!--12--> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$55.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ABE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>3/8"</td> 
    <td>12"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$53.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <!--18--> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACG</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Grounded</td> 
    <td>$57.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACU</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Ungrounded</td> 
    <td>$59.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
    <tr> 
    <td>NB4-CAXL-14U-12-ACE</td> 
    <td>K</td> 
    <td>-270°C to 1372°C</br>–454°F to 2501°F</td> 
    <td>1/8"</td> 
    <td>18"</td> 
    <td>316SS</td> 
    <td>Exposed</td> 
    <td>$57.00</td> 
    <td><a href="/">Order</a></td> 
    </tr> 
</tbody> 

CSS3あなたのループの最初の3回の反復のために

.eo_product_listing_table {} 

.tableizer-table tr:nth-child(even) { 
    background-color: #eee; 
} 

table.tableizer-table { 
    font-size: 12px; 
    border: 1px solid #CCC; 
    font-family: Arial, Helvetica, sans-serif; 
    color: black; 
} 

.tableizer-table td { 
    padding: 4px; 
    margin: 3px; 
    border: 0px solid #CCC; 
    text-align: left; 
    color: black; 
} 

.tableizer-table th { 
    background-color: #104E8B; 
    color: #FFF; 
    font-weight: bold; 
    text-align: left; 
} 

.tableizer-firstrow { 
    background-color: #000; 
    color: whtie; 
} 
+1

'console.log'は、スクリプトのデバッグ情報を出力するための最良の手段です。コンソールでは、コードで発生している未処理のエラーを見つけることもできます。 – meagar

+1

各行には少なくとも4つの 'td'がありますか?何かエラーがありますか?あなたはデバッガを使ってみましたか? – Luaan

+0

@Luaan私は、コードがそれを考えていない限り、各行に9個のtdsがあると信じています –

答えて

0

あなたは@Luaanが言ったと同じように、ALL <tr>タグのためにスクリプトを使用する - あなたのHTMLファイルに見えます。つまり、フォーム1をカウントし、0を書いてはならないということです。そして、すべて正常に動作します。

var rows = document.getElementsByTagName('tr'); 

for (var i = 1; i < rows.length; i++) { 
var cells = rows[i].getElementsByTagName('td'); 
if (i < 4) { 
cells[3].innerHTML = '1/8"'; 
} 
} 
+0

ああ、うーん、今私は愚かな感謝!! –

+0

私が助けてくれたら、 – andfra

+0

私はあなたの答えを受け入れましたが、私のアップヴォートが15人必要であると言いますが、助けてくれてありがとうございます。 –

0

i < 3)あなただけ設定されています同じセルのinnerHTML'1/8"'何度も何度も繰り返します。

たぶん、あなたが行うためのものだろう:

var rows = document.getElementsByTagName('tr'); 

for (var i = 0; i < rows.length; i++) { 
    var cells = rows[i].getElementsByTagName('td'); 
    if (i < 3) { 
    cells[i].innerHTML = '1/8"'; 
    } 
} 
+0

それをセル[i]にすることによって、私はいつも各行の4番目の要素を変更したい。それでなぜ私はそれが細胞であろうと思ったのか[3]。しかし、私は異なる行の束の4番目の要素を変更したい。私の考えは、if文をチェックしてforループを実行し、i <3のどこかを実行するごとに、その行の4番目の要素を望ましい値に置き換えるということでした。もし意味があれば、 –

+0

@MatthewSirkinすべての最初の3行は4番目のセルに '1/8"を持っていますか? – theonlygusti

+0

はい、3/8 "の値を1/8に置き換えた最初の3行はそれぞれ正しいです。ループの入れ子になっていますが、私はこれを働かせることができれば、私は自分自身で残り物をすることができると確信しています。 –

0

さて、あなたはHTMLを掲載しましたことを、エラーは、未処理のエラーや機能の休憩を取得するので、あなたが見つける最初trは、一切td Sが含まれていない:)ありふれた風景です。

theaderまたはtfooterにある行を除いて、tbodyの行のみを検索する必要があります。一般的には、ドキュメント全体のすべての行ではなく、特定のテーブルの行だけを反復処理することをお勧めします。特定のtbodyにIDを付与して直接アクセスして、これらの問題をすべて回避することもできます。

+0

それは私のHTML私はw ould: –

+0

次にgetElementsByIdを使用するだけですか? –

+0

@MatthewSirkinそれにはいくつかの方法があります。古いブラウザをサポートする必要がない場合、 'document.querySelectorAll("#tableBody tr ")'がおそらく最も効果的です。それができない場合、 'document.getElementsById(" tableBody ")。getElementsByTagName(" tr ")'はうまく動作します。 – Luaan

関連する問題