私は jQuery が苦手で、助けが必要です。HTML でテキストを表示したいのですが、数秒後に別のテキストに置き換えます。表示する配列要素を含む JSON オブジェクトがあります。
問題: スクリプトは、JSON オブジェクトの最後の要素のみを表示します。setInterval
およびsetTimeout
機能は正常に動作しています。テキストが追加され、設定されていない場合、すべての要素のテキストが追加され、1 つの文に表示されます。S o$.each
は正常に動作しています。
私は多くのバリエーションを試しましたが、目的を達成することができないようです。
通常、コードの 2 つの例:
例 1:
<script>
var list = "@Html.Raw(Json.Encode(Model))";
$(document).ready(
function () {
for (var i = 0; i < 2; i++)
{
$('#spinNaslov').text(list[i].Naslov);
$('#spinBloger').text(list[i].Korisnik + ', ' + list[i].Datum);
}
});
</script>
<div id="novostiSpin">
<h2 id="spinNaslov" style="text-align:center; color:#fed8e6;"></h2>
<span id="spinBloger" style="float:right; color:#999898; padding:5px;"></span>
</div><br />
最後の例:
<script>
var list = @Html.Raw(Json.Encode(Model));
var i = 0;
$(document).ready(function () {
swap(i);
})
function swap(index) {
window.setInterval(function () {
$('#spinNaslov').text('');
$('#spinBloger').text('');
$.each(list, function (index, item) {
$.each(item, function (name, value) {
window.setTimeout(function () {
if (name == 'Naslov') {
$('#spinNaslov').text(value);
}
if (name == 'Korisnik') {
$('#spinBloger').text(value);
}
}, 3000);
});
i++
});
}, 2000);
}
</script>
<div id="novostiSpin">
<h2 id="spinNaslov" style="text-align:center; color:#fed8e6;"></h2>
<span id="spinBloger" style="float:right; color:#999898; padding:5px;"></span>
</div><br />
どちらの場合も同じ動作です。アドバイスをお願いします
それでおしまい!ありがとう Deedbsterあなたの投稿を見る前に、私は完全に異なるコードで解決策にほぼ到達しました。
お時間があれば、どこが悪いのか教えていただけると助かります。次のコードは、リストの最初または最後の要素を表示しないことを除いて、あなたのものと同じです。
<script>
var listCount = @Model.Count;
var list = @Html.Raw(Json.Encode(Model));
var i = 0;
function naNulu() {
i++;
if(i===listCount-1) {
i = 0;
}
}
$(document).ready(function () {
window.setInterval(function () { swap(i) }, 2000);
})
function swap(index) {
$('#spinNaslov').text('');
$('#spinBloger').text('');
$.each(list, function (index, item) {
$.each(item, function (name, value) {
if (name == 'Naslov') {
$('#spinNaslov').text(list[i].Naslov);
}
if (name == 'Korisnik') {
$('#spinBloger').text(list[i].Korisnik);
}
}); naNulu();
});
}