我正在嘗試使用 Ajax GET URL 來獲取同一域上三個 WordPress 帖子的帖子內容。我在腳本中有一個按鈕和一個陣列中的 URL 并且它可以作業,但是所有三個 URL 都快速連續加載,我想在每次單擊后一次獲取每個 URL 并回圈,所以四次單擊開始再次在陣列的開頭。這是我的代碼:
<button type="button" class="loadAjax">Get Content</button>
<div id="target"></div>
<script>
(function ($) {
$('.loadAjax').click(function(){
var url = ['a-nice-post', 'a-small-gallery', 'a-nice-entry']
for (var i = 0; i < url.length; i ) {
var link = url[i];
$.ajax({
url: link,
type:'GET',
success: function(data) {
$('#target').html($(data).find('.entry-content').html());
}
});
}
});
})(jQuery);
</script>
這是我的示例的鏈接,當您單擊“獲取內容”按鈕時,您會注意到內容的開頭文本顯示了 URL,其余的是 Lorem ipsum 填充符。另請注意,加載內容很慢,因此單擊按鈕后請等待幾秒鐘,我打算在單擊后為用戶添加一些反饋,但我只是想讓這里的代碼保持簡單。
uj5u.com熱心網友回復:
但是所有三個 URL 都被快速加載
那是因為您使用for 回圈遍歷所有這些,每次單擊按鈕時都應該發生。
您可以修改代碼以通過每次單擊按鈕時遞增索引來訪問陣列中的下一個 url,并在索引大于陣列中的索引數(陣列長度 - 1)時將其重置為 0。
示例代碼:
(function ($) {
let url = ['a-nice-post', 'a-small-gallery', 'a-nice-entry'];
let i = 0;
$('.loadAjax').click(function () {
const link = url[i];
// increment index unless it is greater than total available indexes
// in which case, reset it back to 0
// we use a ternary statement here
i = i === url.length - 1 ? 0 : i;
$.ajax({
url: link,
type: 'GET',
success: function (data) {
$('#target').html($(data).find('.entry-content').html());
},
});
});
})(jQuery);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/503865.html
標籤:jQuery 数组 阿贾克斯 WordPress 得到
上一篇:Django3.2如何修復AttributeError:'itertools.chain'objecthasnoattribute'filter'錯誤?
