Javascript中应用的jQuery JSON数据库变量

jQuery JSON database variable applied in Javascript

本文关键字:JSON 数据库 变量 jQuery 应用 Javascript      更新时间:2023-09-26

这可能是一项简单的任务,但我只是在学习jQuery、JSON和Javascript之间的关系。我使用jQuery从数据库中提取并创建了一个名为res[I].showlink的变量,它是一个url。这是我的部分通话代码。

   $.get("http://databasecall=json", {}, function (res) {
       $.mobile.hidePageLoadingMsg();
       if (res.length) {
           var s = "";
           for (var i = 0; i < res.length; i++) {
               s += "<li><a name=" + res[i].id + " href='" + "javascript:openGoogle()" + "'>" + res[i].showlink + "</a></li>";
           }
           $("#showList").html(s);
           $("#showList").listview("refresh")
       }, "json");

问题是,我想在上面的代码之外的javascript函数(openGoogle)中重用res[I].showlink数据库变量。当我重新使用数据库变量res[I].showlink时,它不再包含数据库中的数据。如何重用上面jQuery/JSON代码之外的变量?我真的很感激你的建议。非常感谢。

您将该值存储为锚标记的内容,您也可以从那里访问它。

更改

javascript:openGoogle()

javascript:openGoogle.apply(this)

然后在openGoogle内部,您可以使用$(this).text() 访问该值

编辑
另一种选择是直接将值作为参数传递。

更改

javascript:openGoogle()

javascript:openGoogle(" + res[i].showlink + )

然后修改

function openGoogle() {

function openGoogle(showlink) {

并使用访问价值

alert(showlink);

您需要在get调用之外存储对res的引用——否则,它的作用域是有限的,正如您所注意到的,您无法从调用之外访问它。试试这样的东西:

var globalRes = null;
$.get("http://databasecall=json", {}, function(res) {
    globalRes = res;
    $.mobile.hidePageLoadingMsg();
    if (res.length) {
        var s = "";
        for (var i = 0; i < res.length; i++) {
            s += "<li><a name=" + res[i].id + " href='" + "javascript:openGoogle()" + "'>" + res[i].showlink + "</a></li>";
        }
        $("#showList").html(s);
        $("#showList").listview("refresh")
    }, "json");​

调用之后,globalRes将包含res的值,但将是全局的,这意味着您可以从get调用之外访问它。

保存全局变量中的值:

$.get("http://databasecall=json", {}, function (res) {
    window.myResult = res;
    ....
}

然后使用

您需要将其存储在ajax返回调用之外的变量中。

例如,你可以有:

           var resData;

在包含的javascript文件的顶部

然后用替换您的代码

$.get("http://databasecall=json",        {}, function(res) {
                                   $.mobile.hidePageLoadingMsg();
                                   if(res.length){
                                   resData = res;
                                   var s = "";
                                   for(var i=0; i<res.length; i++) {
                                   s+= "<li><a name=" + res[i].id + " href='" +      "javascript:openGoogle()" + "'>"  + res[i].showlink +  "</a></li>"; 
                                   }