0

私はこのように設定された構造を持っています:

<div id="container">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
</div>

ある時点で、コンテナの先頭に「子」を追加したいと考えています。

$("#container").prepend('<div class="child"></div>');

これは、Firefox を除くすべてのブラウザーで正常に機能します。Firefoxは新しい子を追加します。その結果、ページの読み込み時に同じコードが使用されるため、子は実際には逆さまになります。

.innerHTML、.before()、.html(child + old_html) などを使用してすべてを使用しようとしましたが、Firefox に html を適切に追加することはできません。

誰かがこれを修正するのを手伝ってくれるなら、前もって感謝します。

編集:欠落している "

4

2 に答える 2

1

いくつかの調査の結果、prepend()に問題はなかったようですが、Firefoxは実際にjsonのキーを逆にしました。何が起こったのかを説明するために、私のjsonは次のようになりました。

{"shouts":[
"12"{<some data concerning id=12 here>}, 
"11"{<some data concerning id=11 here>}, 
"10"{<some data concerning id=10 here>},
etc ]}

Chromeと他のすべてのブラウザは、おそらく配列のキーとして「12」、「11」、「10」を想定しているため、ループ内でこの順序を逆にしました。ループすると、10、11、および12が生成されます。ただし、Firefoxはこれを行わなかったため、逆転が発生しました。

解決策は、jsonからIDを削除し(これにより、動作が均一になりました。つまり、すべてのブラウザーでIDが逆の順序で表示されるようになりました)、jsonの順序を逆にすると、次のようになります。

{"shouts":[
{<some data concerning id=10 here>}, 
{<some data concerning id=11 here>}, 
{<some data concerning id=12 here>},
etc ]}

それで問題は解決しました!(example.phpからわかるように、今すぐです。)皆さんの助けに感謝します。

于 2012-08-15T09:32:11.000 に答える
1

セレクターの文字列が閉じていません:

これを変える:

$("#container).prepend('<div class="child"></div>');

に:

$("#container").prepend('<div class="child"></div>');
于 2012-08-14T12:46:35.723 に答える