0

配列の長さを照会してから、JS/jQuery を使用してクライアント側で同じ量の新しい HTML 要素を作成することは可能ですか?

私が配列用に持っているコードは次のとおりです。

var psC1 = [
'item1',
'item2',
'item3'
];

alert(psC1.length);

配列に 3 つの項目があることを警告します。ページに 3 つの iframe を作成し、配列を各要素の src 属性にインデックス付けします。

配列を使用して iframe の src を挿入するために使用するコードは次のようになります。

  $('.test-iframe').each(function() {
    $(this).attr('src', psC1[$(this).index()]); 
   });

私が苦労しているのは、配列を数えた後、JS/jQuery で 3 つの iframe を作成することです。

4

4 に答える 4

2

iframejQuery でを作成するには、$関数を使用します (またはjQuery非競合モードで):

$("<iframe>").appendTo(document.body);

もちろん、本文に追加する必要はありません。必要な場所に iframe を配置できます。

あなたの場合、おそらく次のようなものです:

$.each(psC1, function(index, value) {
    $("<iframe>").attr("src", value).appendTo(document.body);
});

$.each配列エントリをループします。

于 2012-12-06T13:55:16.900 に答える
1
for (var x = 0; x < psC1.length; x++) {
   $("<iframe>", {'src': x}).appendTo("body");
}

$("<iframe>")構文は要素を作成します 。.appendToそれをDOMに追加します。これは、ソースが「0」、「1」、および「2」の iframe を作成するだけなので、'/some/path/?page=' + xおそらくsrc.

$.each通常のループの代わりに使用することもできますがfor、より高価であり、私の意見では不要であることに注意してください。

于 2012-12-06T13:56:47.810 に答える
0

ループを使用して HTML を作成できます

var iframeHTML = "";
for (int i = 0; i < count; i++)
{
    iframeHTML += "<iframe class='test-iframe'></iframe>";
}

次に、必要な場所に HTMLString を追加します。

于 2012-12-06T13:59:11.157 に答える
0

これをよりきれいにすることができますjQuery.map

$('body').append($(psC1).map(function (i, src) {
    return $('<iframe>').attr('src', src);
}).get());
于 2012-12-06T14:02:07.587 に答える