これは私のスクリプトですが、動作しません:
var first = document.getElementById("sheet").rows[0];
var two = first.cells(4);
two.setAttribute('style','display:none');
これは私のスクリプトですが、動作しません:
var first = document.getElementById("sheet").rows[0];
var two = first.cells(4);
two.setAttribute('style','display:none');
セルは関数やメソッドではなく、インデックスでアクセスできる HTML コレクションを返すプロパティであることに注意してください。
var two = first.cells[4];
setAttributeを使用するのではなく、プロパティを直接設定します。
two.style.display = 'none';
あなたが本当に属性を設定しようとしているのか、関数 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;
注:できます<td onblur="myFunction()">
-HTMLに直接追加しますが、バインドする必要があるこのように実行時にそれを行うことはできないと思います:) ...
編集: 2番目の問題について-RobGが言ったように、cells
[]ブラケットでコレクションにアクセスする必要があります:
var two = first.cells[4];
また、実際にそのインデックスのセルがあるかどうかを確認します(セルは 0 から X までインデックス付けされます => インデックス 4 は 5 番目を意味します)