- ベストアンサー
setTimeoutでelementを渡す方法
- setTimeoutの引数にdocument.getElementByIdの情報を格納して他の関数に渡すことはできないのでしょうか?
- setTimeoutでは渡された要素に対してタグ名などのプロパティを使うことができません。
- 普通に渡す場合はちゃんと使えるのに、setTimeoutではなぜプロパティが表示されないのか疑問です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コードが間違っているからよ setTimeout("bbb('"+m+"',"+p+")",1000); だと function bbb(m,p)のmには 文字列 [object] が入ってしまうわよ setTimeoutで呼び出す関数に引数を渡したい場合は 次のように書くといいわ setTimeout(function(){bbb(m,p);},1000);
その他の回答 (1)
- Chaire
- ベストアンサー率60% (79/130)
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." を付けないと上書きした方を呼べませんので念のため。
お礼
参考にさせていただきます。ありがとうございました。
お礼
解決しました。ありがとうございました。