如何简单地Ajax脚本(删除重复的代码)?

时间:2015-05-30 17:31:58

标签: javascript jquery html ajax

我想简化以下脚本,并创建一个可重用的函数, 我用它:

<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>

看起来好多了。但似乎并不那么容易。 它不起作用。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你几乎就在那里。您需要手动连接字符串,如

function good(url,tag){
    var callAjax = function(){
      $.ajax({
        method:'get',
        url:url+'.php',
        success:function(data){
          $("#"+tag).html(data);
        }
      });
    }
    setInterval(callAjax,1000);
  }

Javascriptphp不同,其中变量可以在双引号之间进行评估。

此外,您需要将参数作为字符串

传递
$(document).ready(function(){
    good('abctest','test');
    good('getabc','abc');
    good('123','123');
});