0

フォームのコンテンツがonchangeイベントを使用して変更されたときに、セルテーブルのテキストの色(リンク)を変更する正しい方法(ほとんどすべてのブラウザーで機能します)を探しています。私はこれを使用しています:

JavaScriptコード

function changeColor(num){
    if (num == "1"){
               cont = num - 1;
               answer[cont] = 1;
               document.getElementById("cell_1").className="cellNumFilled";
        } 

HTMLコード

<table border="1" cellspacing="0" cellpadding="2">
  <tr>  
   <td><a class="cellNum" HREF="#preg1" title="1" id="cell_1">1</a></td> 
   <td><a class="cellNum" HREF="#preg2" title="2" id="cell_2">2</a></td> 
   <td><a class="cellNum" HREF="#preg3" title="3" id="cell_3">3</a></td> 
  </tr>
</table>

<div id="quesItem">
<p><b>1. [ 1 Pts.]</b> bla bla bla</p>
<p>Answer: 
  <input type="text" name="a6" maxlenght="200" size="20" onchange="changeColor(1)" />
  <input type="button" value="Preview"/> 
</p>
</div>

完全な「関数型コード」はこのjsfiddleにあります。

入力ボックスの内容が変わると、テーブル上部の色も変わる必要があります。タグに2つのクラスを使用しています。1つはデフォルトで、もう1つはコンテンツが'document.getElementById( "idName")。className="newClassName";'を介して変更される場合です。しかし、動作しません。なぜですか?またはそれを行うためのより良い簡単な方法?

4

2 に答える 2

0

以下を試してください:

document.getElementById("idName").setAttribute('class', 'className');

お役に立てば幸いです。

于 2013-03-01T20:02:05.963 に答える
0

クラスを設定する前に、このようにその属性を削除してください

document.getElementById("cell_1").removeAttribute("class")

その後

document.getElementById("cell_1").setAttribute("class","cellNumFilled")
于 2013-03-01T20:37:45.913 に答える