Javascript Jquery使用ajaxpost操作html模板

Javascript Jquery使用ajaxpost操作html模板,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在这么做 Php页面citySearchResultLiselement.Php <?php $cityId = $_GET['city_Id']; $cityName = $_GET['city_screen_name']; ?> <li class="result"> <a target="_blank" href="javascript:selectedCityInSearch('<?php echo $cityId; ?>','<

我正在这么做

  • Php页面citySearchResultLiselement.Php

    <?php 
    $cityId =  $_GET['city_Id'];
    $cityName =  $_GET['city_screen_name'];
    ?>
    <li class="result">
    <a target="_blank" href="javascript:selectedCityInSearch('<?php echo $cityId; ?>','<?php echo $cityName; ?>');">
    <h2><?php echo $cityName; ?></h2></a>
    </li>
    
  • 我从

    function test(resourceObject,paramArray)
    {
    var myObject = getMockupElementHtml(resourceObject,paramArray);
    console.log(myObject);
    return myObject;
    }
    
  • 使用调试工具,我可以看到myObject并不是我所期望的。我期望在另一个函数中进一步使用纯html代码,但我得到了这个结果

    Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
    abort: function (e){return e=e||S,o&&o.abort(e),T(0,e),this}
    always: function (){return i.done(arguments).fail(arguments),this}
    complete: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    done: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    error: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    fail: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    getAllResponseHeaders: function (){return E===2?i:null}
    getResponseHeader: function (e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n}
    overrideMimeType: function (e){return E||(c.mimeType=e),this}
    pipe: function (){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()}
    progress: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    promise: function (e){return e!=null?v.extend(e,r):r}
    readyState: 4
    responseText: "<li class="result"><a target="_blank"  href="javascript:selectedCityInSearch('1925','Sarakhs (Iran, Islamic Republic Of)');">
    <h2>Sarakhs (Iran, Islamic Republic Of)</h2></a>
    </li>"
    setRequestHeader: function (e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this}
    state: function (){return n}
    status: 200
    statusCode: function (e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this}
    statusText: "OK"
    success: function (){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this}
    then: function (){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()}
    
    Object{readyState:1,setRequestHeader:function,getAllResponseHeaders:function,getResponseHeader:function,OverrideMetype:function…}
    中止:函数(e){返回e=e | | S,o&&o.abort(e),T(0,e),this}
    始终:函数(){返回i.done(参数).fail(参数),this}
    complete:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此}
    完成:函数(){if(a){var t=a.length;(函数r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此}
    错误:函数(){if(a){var t=a.length;(函数r(t){v.each(t,函数(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回此值}
    fail:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))返回此}
    getAllResponseHeaders:function(){returne E==2?i:null}
    getResponseHeader:function(e){var n;if(e==2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}返回n==t?null:n}
    overrideMimeType:function(e){returne e | |(c.mimeType=e),this}
    pipe:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1](v.isFunction(o)→function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)→e.promission().done(n.resolve.resolve)失败(n.reject)。进程(n.notify):n[s+”带“](this==i?n:this[e]:n],[e],[e],[e],[e]:n[s]),e]空值)
    进程:函数(){if(a){var t=a.length;(函数r(t){v.each(t,function(t,n){var i=v.type(n);i==“function”?(!e.unique | |!c.has(n))&&a.push(n):n&&n.length&&i!==“string”&&r(n)})(参数),i?o=a.length:n&(s=t,l(n))}返回这个}
    承诺:函数(e){返回e!=null?v.extend(e,r):r}
    重新启用日期:4
    responseText:“
  • ” setRequestHeader:函数(e,t){if(!e){var n=e.toLowerCase();e=w[n]=w[n]|e,b[e]=t}返回此} 状态:函数(){return n} 现状:200
    状态代码:函数(e){if(e){var t;if(e不确定,但这可能是问题所在:

    function getMockupElementHtml(resourceObject,
    
    上面您没有关闭“()”括号,似乎您也遗漏了一些参数


    这应该是:

    function getMockupElementHtml(resourceObject, paramArray){ // <---like this
    
    并更改为:

    dataType: 'html',
    

    您的问题是,您正在同步代码中包装异步代码,并且使用冲突的变量名

    var content = '';
    content = $.ajax({ //content variable is now a jqXHR object returned from $.ajax()
            url: url,
            type: 'GET', 
            data: paramArray,
            dataType: 'text',
            crossDomain: true
    }).done(function (data) {
        content = data; //this does happen until AFTER content is returned to calling function
    })
    .fail(function (xhr, textStatus, errorThrown) {
                        console.log(xhr.responseText);
                        console.log(textStatus);
                        console.log(errorThrown);
    
                        }
          );
    return content;//content is still jqXHR at this point
    
    为了解决此问题,请不要使用返回,简单地对回调中的数据执行您想要执行的操作:

    .done(function (data) {
            console.log(data);
        })
    

    我相当确定这是一个同步性问题是的,可能我在代码的位置问题上输入了一些错误,不管我的代码中的函数是正确的,没有缺少参数错误。我不能使用jQuery ajax调用来返回javascript函数的值吗?我的目标是使用getMockupElementHtml作为“模板提供程序”为了处理它在一个单独的javascript函数中返回的内容…@user3385666是的,如果您使ajax调用同步,那么您将锁定浏览器,直到调用完成,这可能需要一段时间。异步性是javascripts的一个优点,不要尝试与之抗争。这正是我想要的。如果ll是异步的,因为它是一个非常简单的调用,但它必须是动态的,并通过javascript调用。非常感谢!
    var content = '';
    content = $.ajax({ //content variable is now a jqXHR object returned from $.ajax()
            url: url,
            type: 'GET', 
            data: paramArray,
            dataType: 'text',
            crossDomain: true
    }).done(function (data) {
        content = data; //this does happen until AFTER content is returned to calling function
    })
    .fail(function (xhr, textStatus, errorThrown) {
                        console.log(xhr.responseText);
                        console.log(textStatus);
                        console.log(errorThrown);
    
                        }
          );
    return content;//content is still jqXHR at this point
    
    .done(function (data) {
            console.log(data);
        })