我在jQuery中很弱,我需要幫助。我想在html中顯示一些文本,並在幾秒鐘後將其替換爲另一個文本。我有一個包含要顯示的數組元素的JSON對象。jquery循環json中的每個對象和html中的交換文本
問題: 該腳本僅顯示JSON對象中的最後一個元素。 setInterval
和setTimeout
功能正常。如果文本被附加,而未設置,則所有元素的文本都被添加並顯示在單個句子中。 S o $.each
工作正常。
我已經嘗試了許多變化,似乎無法達到理想狀態。代碼
一般兩個例子:
例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();
});
}
這就是它!謝謝Deedbster 在我看到你的文章之前,我幾乎找到了一個完全不同代碼的解決方案。 如果你有時間可以幫助我,如果你能告訴我我錯了什麼。 以下代碼與您的代碼完全相同,除了不顯示列表的第一個或最後一個元素。 – boris
對不起,我不得不將代碼放在原始帖子的編輯中。 如果你可以看一看,並告訴我有什麼問題:-) – boris
和以前一樣,由於您反覆調用text(),所以使用'''''''',儘管這次使用相同的值。你對'''''''太高的檢查也是不正確的,因爲你想允許listCount-1的項目,因爲這是最後一個值。 – Deebster