• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:setTimeoutでelementを渡す方法)

setTimeoutでelementを渡す方法

このQ&Aのポイント
  • setTimeoutの引数にdocument.getElementByIdの情報を格納して他の関数に渡すことはできないのでしょうか?
  • setTimeoutでは渡された要素に対してタグ名などのプロパティを使うことができません。
  • 普通に渡す場合はちゃんと使えるのに、setTimeoutではなぜプロパティが表示されないのか疑問です。

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

コードが間違っているからよ setTimeout("bbb('"+m+"',"+p+")",1000); だと function bbb(m,p)のmには 文字列 [object] が入ってしまうわよ setTimeoutで呼び出す関数に引数を渡したい場合は 次のように書くといいわ setTimeout(function(){bbb(m,p);},1000);

kiseki777
質問者

お礼

解決しました。ありがとうございました。

その他の回答 (1)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

bbb() 内で表示された "[object HTMLDivElement]" とは文字列です。ノードではありません。 次の書式を覚えて下さい。 setTimeout(bbb, 1000, m, p); これは JavaScript 1.2 からあり、Firefox、Opera、Safari はサポート済みです(HTML(5) に収録されました)。IE だけ対応していません(というより別仕様です)が、でっち上げることは可能です。 setTimeout(function (x) {  if ('undefined' === typeof x) {   window._setTimeout = window.setTimeout;   window.setTimeout = function setTimeout (handler, timeout) {    var args = Array.prototype.slice.call(arguments, 2);    return window._setTimeout(function () {     handler.apply(window, args);     handler = timeout = args = null;    }, timeout);   };  } }, 1, 'JavaScript'); "window." を付けないと上書きした方を呼べませんので念のため。

kiseki777
質問者

お礼

参考にさせていただきます。ありがとうございました。

関連するQ&A