【问题标题】:How to pass the jquery's ajax response data to outer function? [duplicate]如何将 jquery 的 ajax 响应数据传递给外部函数? [复制]
【发布时间】:2013-12-21 18:59:18
【问题描述】:

我正在从 ajax 调用中获取数据并将数据附加到表中。我正在从数据中获取标题和网址。现在,当我点击表格的 url 数据时,我需要使用点击的 url 数据调用外部 javascript 函数。

 <script>

 jquery(document).ready(function(){
   jquery(#button).click(function{
  showData();  
 });
 });


function showData(){
var total  = "";
var final = ""; 
  jquery.ajax({
url : "AJAX_POST_URL",
type: "POST",
data : input,
    dataType: "json",
success: function(jsondata)
{
    //data - response from server
     var document= jsondata.data.results;  //am getting array of objects
     for(int i=0; i<document.length; i++){
      var tr = "<tr>";
    var td = "<td>" + "Title : " +
    document[i].title + "Url :" + "<a href=''>" +  document[i].url + </a> + "</td></tr>";
   final = tr + td;
    total= total + final ;
        }

    $("#docTable").append(total) ;

},
error: function (jqXHR, textStatus, errorThrown)
{
            alert("error");
}
});
}
</script>


<script>
function download(){

  //inside this function i need to get the value of document[i].url
}
</script> 

【问题讨论】:

  • @adeneo :我已经阅读了链接..但是我需要在点击表格数据后捕获数据并将其传递给外部函数。?该怎么做?
  • 谁能帮我搞定这个...!

标签: javascript jquery ajax


【解决方案1】:

你真的应该更好地构建你的程序,如果你能把你的完整示例放在 jsfiddle.net 上会更容易。

但在您当前的代码中,一个快速的解决方案可能是让“文档”成为一个全局变量。请注意,文档已经是 BOM(浏览器对象模型)中的全局变量,因此请使用其他内容,例如“文档”。

<script>
// Global variable
var docs;

jquery(document).ready(function(){
  jquery(#button).click(function{
    showData();  
  });
});

function showData(){
  var total  = "";
  var final = "";

  jquery.ajax({
    url : "AJAX_POST_URL",
    type: "POST",
    data : input,
    dataType: "json",
    success: function(jsondata)
    {
      //data - response from server
      docs = jsondata.data.results;  //am getting array of objects

      for(int i=0; i<document.length; i++) {
        var tr = "<tr>";
        var td = "<td>" + "Title : " +
        docs[i].title + "Url :" + "<a href=''>" +  docs[i].url + </a> + "</td></tr>";
        final = tr + td;
        total = total + final;
      }

      $("#docTable").append(total) ;
    },

    error: function (jqXHR, textStatus, errorThrown)
    {
      alert("error");
    }
  });
}
</script>


<script>
function download(){    
  //inside this function i need to get the value of document[i].url

  // You have access to docs through the global variable
  for(var i=0;i < docs.length;i++) {
    console.log(docs[i].url)
  }
}
</script> 

【讨论】:

  • 感谢 Hallvar..!我还能知道一件事吗。实际上,当我点击表格的数据时,我正在调用函数“下载”。所以我怎么才能知道那个特定的网址。根据答案,我正在获取整个文档,但是当我单击表格 url 数据时,我需要获取特定的 url 数据。
  • @Hallvar...是的,我同意。从下次开始,我会在 jsfiddle.net 上发布
  • 如果你只是想把浏览器发送到doc的url,那么你不需要下载功能。您可以改为将 "" 更改为 ''。当用户点击网址时,浏览器将打开该网址。
  • No..我的意思是,当我点击表格数据的url时,我需要调用一个java方法,所以当我点击url时,我正在写一个js反过来调用java方法的函数,但是如何将点击的url传递给js函数,这样我就可以从那里传递给java方法
  • 我是 javascript 和 jquery 的初学者。所以我问了“n”个问题?
猜你喜欢
  • 2011-06-19
  • 2015-08-07
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多