3

variable を宣言しpaddingましたが、アラートで問題なく値が得られます。ただし、使用する場合:

document.getElementsByTagName("td").style.height = padding;

エラーが発生しましたUncaught TypeError: Cannot set property 'height' of undefined index.html:46 (anonymous function)

そして、それpaddingは正しい値です!!!

では、何が間違っているのか!?

注: index.html:46 は上記の行です。

4

5 に答える 5

10

document.getElementsByTagName("td")を返しNodeList、それは のようなものなArrayので、次のことができます:

document.getElementsByTagName("td")[0].style.height = padding;

またはループでそれを行います:

var tds = document.getElementsByTagName("td");

for(var i=0 , len = tds.length; i<len; i++){
   tds[i].style.height = padding;
}
于 2013-07-22T09:02:11.740 に答える
1

これを試して

 document.getElementsByTagName("td")[0].style.height = padding;

このgetElementsByTagName()メソッドは、指定されたタグ名を持つ要素の子要素のコレクションを NodeList オブジェクトとして返します。

于 2013-07-22T09:04:41.033 に答える
1

getElementsByTagName によって指定されたノードのリスト

試す:

document.getElementsByTagName("td")[0].style.height = padding;
于 2013-07-22T09:02:40.400 に答える
1

「document.getElementsByTagName("td")」が null でないかどうかを確認してください。エラー メッセージには、undefined のプロパティ 'height' を設定できませんというメッセージが表示されます。「パディング」に問題はありません

于 2013-07-22T09:03:08.257 に答える
1

次の 2 つの問題が発生する可能性があります。

  1. あなたのhtmlには要素が含まれておらずtd、未定義を返します。
  2. 複数含まれてtdいるため、インデックスを作成する必要があります。

これを試して:

var tds = document.getElementsByTagName("td");
if(tds != undefined)
   tds[0].style.height = padding;

また

var tds = document.getElementsByTagName("td");
if(tds != undefined){
   for(var i=0 , len = tds.length; i<len; i++){
      tds[i].style.height = padding;
   }
}
于 2013-07-22T09:13:01.930 に答える