我想简化以下脚本,并创建一个可重用的函数, 我用它:
<span id="test"></span>
<span id="abc"></span>
<span id="123"></span>
现在是:
<script>
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method:'get',
url:'abctest.php',
success:function(data){
$("#test").html(data);
}
});
}
setInterval(callAjax,1000);
});
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method:'get',
url:'getabc.php',
success:function(data){
$("#abc").html(data);
}
});
}
setInterval(callAjax,1000);
});
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method:'get',
url:'123.php',
success:function(data){
$("#123").html(data);
}
});
}
setInterval(callAjax,1000);
});
</script>
你可以看到,我只需要改变网址和#,所以我创建了一个函数:
function good(url,tag){
var callAjax = function(){
$.ajax({
method:'get',
url:'url.php',
success:function(data){
$("#tag").html(data);
}
});
}
setInterval(callAjax,1000);
}
并将脚本重写为:
<script>
$(document).ready(good(abctest,test));
$(document).ready(good(getabc,abc));
$(document).ready(good(123,123));
</script>
看起来好多了。但似乎并不那么容易。 它不起作用。如何解决这个问题?
答案 0 :(得分:1)
你几乎就在那里。您需要手动连接字符串,如
function good(url,tag){
var callAjax = function(){
$.ajax({
method:'get',
url:url+'.php',
success:function(data){
$("#"+tag).html(data);
}
});
}
setInterval(callAjax,1000);
}
Javascript
与php
不同,其中变量可以在双引号之间进行评估。
此外,您需要将参数作为字符串
传递$(document).ready(function(){
good('abctest','test');
good('getabc','abc');
good('123','123');
});