-1

Google Maps APIを使用してインフォボックス内にDOM要素を作成しようとしていますが、要素が見つかると予想される場合、ブラウザは要素をレンダリングせず、オブジェクトに関するプレーンテキストをレンダリングします。これは、JSとHTMLを混合する方法と関係があると思います。これは、Javascript(HTMLなし)を含めるだけで、要素が問題なく表示されるためです。

インフォボックスのコンテンツ変数は次のようになります。

var content = '<strong>Title</strong>' + document.createElement('button');

レンダリングされたコンテンツは次のようになります。

Title [object HTMLButtonElement]
4

1 に答える 1

1

これは、私が JS と HTML を混合している方法と関係があると思われます

丁度。

var content = '<strong>Title</strong>' + document.createElement('button');

+ここでの変数には、最初に文字列値が割り当てられます。次に、このコンテキストでは文字列連結を表す演算子を使用して、変数に何かを追加しようとします。ここでは、HTML 要素は「架空の」ものであるため、操作を実行できるように文字列に変換する必要があります。そして、暗黙的に HTML 要素を文字列に「キャスト」すると、ブラウザーはそれを次のようにし[object HTMLButtonElement]ます (正確なテキストは、ブラウザーによって少し異なる場合があります)。

DOM メソッド ( の場合は createElement strong、その中のテキスト コンテンツの場合は createTextNode )を使用してすべての要素を作成するかinnerHTML、コンテキストで可能な場合は を使用します。

于 2013-03-15T16:41:18.633 に答える