アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。以前も同じ質問をさせていただいた者です。
http://oshiete1.goo.ne.jp/qa4199640.html

getElementByIdでセルの背景色を変更するために
document.getElementById(planId).style.backgroundColor="white";
というコードを書いたのですが、
document.getElementById(planId) is null
というエラーが出てしまいます。しかしセルの塗りつぶしはできているという謎のエラーです。

ここからが以前より多少進展したところなのですが、どうやら原因はID名にあるようです。
実は、planIdは一つ以上の変数の内容と組み合わせて生成しています。
a=ABC;
b=123;
planId=a+String(b);
の様にです。

ID名は動的なものでないと困るので、変数を使っていたのですがこういうやり方はできないのでしょうか?
もしほかにいい方法があればご教授ください。よろしくお願いします。

A 回答 (2件)

こんにちは



getElementsByName()で、複数回目の参照以降にエラーが出るというのは体験したことがありますが、getElementById()は安定していると思います。(そのときはId参照に切替えました)
()内のid指定は変数でもOKです。

多分、Object.getElementById(id).property というような使い方をされているでしょうから、エラーが出る時のObject、id、propertyがそれぞれ正しくなっているかを再確認されてみてはいかがでしょう?
a = document.getElementById(planId);
のように分解しても、この行でエラーになるのあれば、そのときのplanIdの値が正しいか(IDとして存在している値か)を確認してみては?
    • good
    • 0
この回答へのお礼

返信が遅くなりすみません。

ご指摘いただいた点を再確認しましたが,問題ありませんでした。
しかし,ID指定に変数が使えるとはっきりわかっただけでも収穫ありです。ありがとうございます。

お礼日時:2008/09/05 11:20

気になったのですが、



> a=ABC;

これは ABC という変数を a に代入していますよね。
文字列なら

a = 'ABC';

ではないでしょうか。
ところで、ブラウザはなんでしょうか。
みたところ、FxもしくはGeckoエンジンを搭載したブラウザのようですが。

alert(planId);

でちゃんと意図したIDになっているかと

alert(document.getElementById);

で、 document.getElementById が存在しているかを確認してください。
    • good
    • 0
この回答へのお礼

返事が遅くなりすみません。

>これは ABC という変数を a に代入していますよね。
間違えました↓↓ご指摘ありがとうございます。

>ところで、ブラウザはなんでしょうか。
Firefoxです。

ご指摘いただいたとおり確認してみましたが問題ないようです。
たしかにそのあたりが怪しいとは思うのですが,原因がなかなかつかめません。

ご回答ありがとうございました。

お礼日時:2008/09/05 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!