2011-02-19 26 views
4

次のコードを使用して画像要素を作成し、読み込んでから読み込み時に記事に追加します。Javascript/jQueryで画像を作成して追加するにはどうすればよいですか?

$('<img />') 
    .attr('src', 'image.png') //actually imageData[0].url 
    .load(function() { 
    $('article').append($(this)); 
    alert('image added'); 
    }); 

アラートは[OK]をオフに発射されていますが、画像が表示されない、と私はそれを閉じずに追加された要素を検査したときに、なぜブラウザが前方を削除して

<img src='image.png' > 

を大幅に削減スラッシュと私はどのようにそれを停止するのですか?

UPDATE: それは問題(毎日の学校の日)だスラッシュではないことを指摘しているすべての人のおかげで、それは、何だろうか?問題は、私が使用したテスト画像(http://img.ffffound.com/static-data/assets/6/dc01f803819405bfe160459021cfe6cc57766f9b_m.jpg)であると思われるよう、私は、他の画像でこれをテストしていないためバカだよ表示されるように OK:ここでは実際の例http://chris-armstrong.com/inspiration/?username=behoff

UPDATE 2です。あなたがURLをクリックするとロードされるので不思議です...とにかく、すべてのあなたの助けをいただきありがとうございます、私はいくつかを学んだ!

+1

あなたは正しいパスを指定するのですか?また、 'image.png'を引用符で囲んでいません。 – Sarfraz

+2

文書の種類によっては、スラッシュが必要ない場合もあります。また、ドキュメントを検査するために使用しているツールがあれば、それが書かれているとおりに正確にDOMを表示しているわけではありません。イメージは存在しますか?値を文字列 '' .attr( 'src'、 'image.png') 'に渡す必要があります。また、前にスラッシュを追加する必要があります:' .attr( 'src'、 '/image.png' ) '。パスを確認します。 –

+0

'article'は' id'か 'class'のいずれかですね。 –

答えて

3

提供された情報に基づいて、我々は次のことを知っている:

  • イメージが正常に追加されます。

  • 画像が正常に読み込まれました(そうでないとalert()を取得しません)

あなたは完全に透過画像(もちろんそうではない)を持っているか、私はあなたのCSSは、何とかその表示を妨げていることを賭けると思いますどちらか。

デモでコメントアウトしたCSSを使用した例です。

http://jsfiddle.net/JxhaR/(可視像)

すなわち、culpretがあると思われる:

display: -webkit-box; 

Iは、画像表示装置、それを無効にします。

http://jsfiddle.net/JxhaR/1/(画像が表示されている。)

+1

+1本当に調査技能のために: –

+0

ハ、おかげで、それはテスト画像(http://img.ffffound.com/static-data/assets/6/dc01f803819405bfe160459021cfe6cc57766f9b_m.jpg)が判明したようです。使用して問題があるように思えます...私は配列内の他の画像で試してみると、うまく表示されます。あなたがそのURLに行くとイメージが読み込まれるので、奇妙です –

1

はこれを試してください:あなたは要素を検査する場合

$('<img />') 
    .attr('src', 'image.png') 
    .append('article') 
    .load(function(){ 
     alert('image added'); 
    }); 
+1

もしあれば、それは 'appendTo'でなければなりません。 –

+0

ありがとうございますが、記事に何も追加していないようです。 –

+0

ああ、appendToは私の例と同じように動作しますが、フォワードスラッシュが削除されているので画像も表示されません。 –

1

が、あなたはそれが追加されたことを方法それを見ることはありません。要素をHTMLコードまたは要素(この場合)として追加する場合でも、要素から作成されたコードを調べているときは、その要素を追加するために使用されたコードは見ていません。

$('<img />')を使用すると、実際にはdocument.createElement('img')となるため、終了スラッシュを表示できるHTMLコードはありません。要素はDOMオブジェクトとして作成され、HTMLコードからは作成されません。

画像が表示されない理由は、タグに終了スラッシュがないように見えるということではありません。

おそらく、ブラウザが探している場所にイメージが存在しない、つまりファイルが見つからないか、URLが正しくない可能性があります。

+0

loadイベントが発生しているので、イメージが正常に読み込まれている必要があります。 – user113716

+0

OK、私はそれがスラッシュではないと信じています.Dなので何ができますか?人生の例はhttp://chris-armstrong.com/inspiration/?username=behoffです。 –

+0

@Chris Armstrong:Firefox、IE、Opera、Safariでテストしたところ、画像はうまく表示されます。 – Guffa

関連する問題