我试图不用SAME代码重复自己,所以我想我会使用jQuery .each()
方法。每次我重新加载网页时,都会收到此ajax错误:
循环不断将其转换为对象。这是我的代码:
var counterColors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'gray', 'brown'], $currentCounterColor;
$(counterColors).each(function() {
$currentCounterColor = $(this);
(function($) {
$(document).ready(function() {
$.ajaxSetup({
cache: false,
success: function() {
$('#count_' + $currentCounterColor).fadeIn(300);
}
});
$currentCounterColor.load('./' + $currentCounterColor + '.php');
var refreshId = setInterval(function() {
$currentCounterColor.load('./' + $currentCounterColor + '.php');
}, 60000);
})
})(jQuery);
});
我有9个ID,如下:
#count_red
#count_orange
#count_yellow
... etc
然后我有9个这样的PHP文件:
red.php
orange.php
yellow.php
我不熟悉这个错误..
答案 0 :(得分:1)
我认为你应该试着吼一声。因为您没有将任何参数带到each
并使用this
来引用。 this
将返回类似{0:"r",1""e",2:"d"}
的字符串。
因此,当您连接时,它将返回#count_[object Object]
而不是#count_red
。
我只是告诉你如何继续。
var counterColors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink', 'gray', 'brown'], $currentCounterColor;
$(counterColors).each(function(index,value) {
$currentCounterColor = value;
$('#count_' + $currentCounterColor).fadeIn(300); // here first time it will call the #count_red.load()
});
但顺便说一句,我不确定你想说什么
$currentCounterColor.load('./' + $currentCounterColor + '.php');
所以,只需看看路线,并相应地更改您的实施。