0

次の配列があります。

function theMiddle(){
var arrayTheMiddle = new Array (showName.theMiddle  +"<br />" + beginingTime.theMiddle  +"  <br    />" + network.abc  +"<br />" + duration.thirty  +"<br />" + rating.general  +"<br />" +    description.theMiddle  +"<br />" + showImagetheMiddle);
 document.getElementById("gridbar").innerHTML=(arrayTheMiddle);
 }

その配列の最後のオブジェクトである showImagetheMiddle は、次のコードを含む画像です。

 var showImagetheMiddle = new Image();
 showImagetheMiddle.src = 'abc.jpg';

すべてのオブジェクトが Web ページに表示されますが、showImagetheMiddle で次のエラーが表示されます。

[オブジェクト HTMLImageElement]

私は周りを見回しましたが、画像を表示するためのより複雑な方法を見つけました。単純に保ち、既存の配列内に画像を追加したいと思います (上記のように)。これは可能ですか?そうでない場合、ここで何が間違っていますか?

どんな助けでも大歓迎です!

4

1 に答える 1

3

は配列であるためarrayTheMiddle、添字演算子を使用し[]て要素を取得する必要があります。あなたの例では、画像は配列の最初 (0 番目) の要素です。あなたの行は代わりにこれでなければなりません:

document.getElementById("gridbar").innerHTML = arrayTheMiddle[0];

[]補足として、 (添え字演算子ではなく)角かっこ表記を使用して配列を作成する方がはるかに優れています。

var arrayTheMiddle = [ ... ];

編集:あなたのコメントを見た後.appendChild、要素をドキュメントに挿入するために使用することをお勧めします。単に追加するだけで+は、期待どおりに機能しないためです。コードは次のとおりです。

var arrayTheMiddle = [showName.theMiddle  +"<br />" + beginingTime.theMiddle  +"  <br    />" + network.abc  +"<br />" + duration.thirty  +"<br />" + rating.general  +"<br />" +    description.theMiddle  +"<br />"];

document.getElementById("gridbar").innerHTML = arrayTheMiddle[0];
document.getElementById("gridbar").appendChild( showImagetheMiddle );

あなたのコードにいくつかの誤解が見つかりました。たとえば、配列の仕組みを理解していないと思います。だからここにいくつかの情報があります:

構文:

配列要素は、角括弧表記を使用して作成され[]ます。配列の要素はコンマ演算子で区切られます,。例えば:

var l = [ 5, 3, 5, 6 ];

配列要素はカンマのみで区切られます。オペレーターはそれら+を分離しません。これは有効なコードですが、配列には要素が 1 つしかありません。

var l = [ 5 + 3 + 5 + 6 ];

コード例では、配列は不要です。それがなくても、必要なことを十分に行うことができます。だからここにあなたの新しいコードがあります:

function theMiddle() {
    var arrayTheMiddle = ; // the same without '[' and ']'
    document.getElementById("gridbar").innerHTML= arrayTheMiddle;
    document.getElementById("gridbar").appendChild( showImagetheMiddle );
}
于 2012-12-14T01:14:40.093 に答える