-3

これは私のスクリプトですが、動作しません:

var first = document.getElementById("sheet").rows[0];
var two = first.cells(4);
two.setAttribute('style','display:none');
4

2 に答える 2

1

セルは関数やメソッドではなく、インデックスでアクセスできる HTML コレクションを返すプロパティであることに注意してください。

var two = first.cells[4];

setAttributeを使用するのではなく、プロパティを直接設定します。

two.style.display = 'none';
于 2013-10-09T08:38:50.960 に答える
1

あなたが本当に属性を設定しようとしているのか、関数 onBlur を追加しようとしているのかはわかりません-両方に答えます

ATTRIBUTEを設定する場合:

次に、あなたのアプローチは実際に正しいです-検討twoは HTMLObject です

two.setAttribute("class","unchecked"); //this sets class .unchecked to the "two"

これにより、既存のすべてのクラスが新しいクラスに置き換えられます。1 つのクラスのみを使用する場合は問題ありません。

歴史的には、独自のクラスのマージを行う必要がありましたが、最新のブラウザーでは、はるかに便利な方法があります:two.classList.add("unchecked");既存のクラス リストを置き換えるのではなく追加します、クラスがまだそこにない場合のみ:-)

onBlurを起動するFUNCTION()を追加する場合

次に、何かを使用してバインドする必要があります - 最も簡単な方法は、HTMLObject 属性 (プロパティ) 内に関数を追加することです - 注意してください! HTMLObject 属性 (プロパティ) は、HTML コード内に表示される属性と同じではありません。

two.onblur=function(){  /*SomeJavaScriptCode*/ };

または、すでに関数がある場合:

two.onblur = cekUndo;

  • 知らせ!() ブラケットはありません - 必要なときに onblur が関数を実行します。関数をすぐに起動させたくない...
  • .addEventListener メソッドも確認することをお勧めします。これはより調整可能であり、たとえば 1 つのイベントにさらに関数を追加できます。

注:できます<td onblur="myFunction()">-HTMLに直接追加しますが、バインドする必要があるこのように実行時にそれを行うことはできないと思います:) ...

編集: 2番目の問題について-RobGが言ったように、cells[]ブラケットでコレクションにアクセスする必要があります:

var two = first.cells[4];

また、実際にそのインデックスのセルがあるかどうかを確認します(セルは 0 から X までインデックス付けされます => インデックス 4 は 5 番目を意味します)

于 2013-10-09T08:24:52.533 に答える