-1

3つのdivがあるとします。Aそして、私は3セットの配列を持っています。各配列の値を 3 つの div に入れる必要があります。私はどのように行うのだろうか?

私の例のdivを見てみましょう。

<div id='001'><div id="nr001"><div id="clr001"></div></div></div>
<div id='002'><div id="nr002"><div id="clr002"></div></div></div>
<div id='003'><div id="nr003"><div id="clr003"></div></div></div>

そして、私はこのような配列の3つのセットを持っています(多分私はもっと持っているかもしれませんが、今では3つのセットの例を見てみましょう):

**These array are from JSON.parse();**

[["001", "002", "003"],["8", "9", "20"], [ "brown", "black", "yellow"]]

私がしたいこと: これらの値を配列に入れ、正しい id div に入れたいのですが、次のようにする必要があります:

<div id='001'>8<div id="nr001"><div id="clr001">brown</div></div></div>
<div id='002'>9<div id="nr002"><div id="clr002">black</div></div></div>
<div id='003'>20<div id="nr003"><div id="clr003">yellow</div></div></div>

私が試したことは次のとおりです。

var str = xmlHttp.responseText;
var res = JSON.parse(str);

var set1 = res[0], set2 = res[1], set3 = res[3];
for (var i = 0; i < set1.length; i++) {
    var div1 =  document.getElementById("nr"+set1[i]);
    var div2 =  document.getElementById("clr"+set1[i]);
    if (div1) {
        div1.innerHTML = set2[i];     
    }

  if (div2) {
        div2.innerHTML = set3[i];     

    }
}

div1 ではなく div2 のみを取得しました。もっと多くのスクリプト行が必要だと思います。または新しい方法:S

解決策を取得した後に更新:

解決策を教えてくれたすべての人に感謝しなければなりません。誰もが正しいです。setTimeout() を使用して 15 秒ごとに関数を呼び出すすべての詳細を説明しなかったのは私のせいです。他の答えは要素を追加するようなものですか?別の呼び出しが終了すると、結果は古い結果に追加されます+++++

しかし、両方のdivを使用する代わりにスパンを割り当てた後。それで問題はなくなりました。希望通りのメッセージが届きました。みんなありがとう。

4

4 に答える 4

0

このようなものはどうですか:

var data = [["001", "002", "003"],["8", "9", "20"], ["brown", "black", "yellow"]];

for ( var i = 0; i < data[0].length; i++ ) {
    var div1 = document.getElementById(data[0][i]);
    div1.innerHTML = data[1][i] + div1.innerHTML;
    document.getElementById('clr' + data[0][i]).innerHTML = data[2][i];  
}

ところで、最初の配列はIDs であると想定しているので、それらをループするだけです。それがあなたが見る理由ですdata[0].length

ライブ @ JSFiddleここでまた。

于 2013-09-08T12:45:27.237 に答える
0
var res = [["001", "002", "003"], ["8", "9", "20"], [ "brown", "black", "yellow"]];

for (var i = res[0].length - 1; i > -1; i--)
{
    var suffix = res[0][i];
    var container = document.getElementById(suffix);
    var div1 = document.getElementById("nr" + suffix);
    var div2 = document.getElementById("clr" + suffix);

    container.insertBefore(document.createTextNode(res[1][i]), div1);
    div2.innerHTML = res[2][i];
}
于 2013-09-08T11:53:50.683 に答える
0

Omer Hassanの回答を修正しました。innerHTML を使用してメイン div にデータを追加し、次のように内部 div にデータを追加する必要があります。

var res = [["001", "002", "003"],["8", "9", "20"], [ "brown", "black", "yellow"]];

for (var i = res[0].length - 1; i > -1; i--)
{
    var suffix = res[0][i];
    var div1 =  document.getElementById("nr" + suffix);


    div1.innerHTML = res[1][i] + div1.innerHTML;   

    var div2 =  document.getElementById("clr" + suffix);
    div2.innerHTML = res[2][i];
}

DEMO FIDDLE

于 2013-09-08T12:44:14.337 に答える