2016-08-28 8 views
-1

マップアプリケーションで作業しています。JqueryでHTML要素を更新できません

var myBounds = map.getBounds(); 
$("#bounds").html("My bounds are: " + myBounds); 

しかし、これはただのブランク示しています:これは動作します

var myBounds = map.getBounds(); 
$("#bounds").html(myBounds); 

Chromeで何コンソールのエラーを。それは

はここに何が問題である。この場合、などのGoogleマップの境界ですmap.getBounds()の戻り値((34.71679866336405、-9.207592500000032)、(38.42994070565381を、-0.06696750000003249))好きではないのjQueryのように見えます?

更新: 不思議なことに、これはあまりにもOK作品:

var myBounds2 = '((34.71679866336405, -9.207592500000032), (38.42994070565381, -0.06696750000003249))'; 
$("#bounds").html(myBounds2); 
+1

それは次のような質問で、頻繁に便利です:

文字列の作品(あなたはそれを文字列に追加するときには、何をやっているのです)に変換するので、あなただけのString関数に渡すことによってそれを行うことができますスタックスニペット( '<>'ツールバーボタン)を使用して**実行可能** [mcve]を含むようにします。 –

+0

.html()にテキストを追加するとJqueryやJSがvar myBoundsを評価するように見えますか? – freeworlder

+0

あなたの質問の終わりのビットは好奇心ではありません。それが*それをしなかったらそれは好奇心が強いでしょう。 –

答えて

3

getBoundsの戻り値が文字列ではありません、それはLatLngBoundsオブジェクトです。明らかにオブジェクトをhtmlに直接渡すと、  —のように十分です。htmlはオブジェクト、文字列だけを受け入れることを文書化していません。私はそれにtoStringを呼んで終わるわけではないが、明らかにそうではないと少し驚いている。

var myBounds = map.getBounds(); 
$("#bounds").html(String(myBounds)); 
// ---------------^^^^^^^--------^ 
+1

私もそれを見るのに驚いていますし、自分自身でその問題にぶつからなかったことにも驚きました。 [それが表示されます](http://james.padolsey.com/jquery/#v=1.11.2&fn=jQuery.fn.html)関数は、文字列または 'append'が処理できるオブジェクトを受け取ります。 DOMノードまたはjQueryオブジェクト。 –

+0

はい、それはまた驚くべきことです。私はまた、オブジェクトの戻り値を変数 'var myBounds = map.getBounds();'に渡すと自動的に文字列化されると考えました。 – freeworlder

+0

私はこの答えを受け入れましたが、 '.html()'に何らかのテキストを含めると期待どおりに動作するのはなぜですか?$( "#bounds").html(myBounds); 'Not OK' – freeworlder

関連する問題