2017-08-16 29 views
2

我用這Ajax調用:服務器返回的HTML,但我不能注入到現場

$.ajax({ 
    url: '/wp-admin/admin-ajax.php', 
    type: 'post', 
    dataType: 'html', 
    data: { 
     action: 'mypages_subscription_slider', 
     subs: subscriptions, 
    }, 
    success: function (data) { 
     build_subscription_slider(subscriptions); 
    }, 
}); 

我檢查我的網絡選項卡,然後,我從服務器收到文件具有正確的內容。就像這樣:

<hr> 
<div class="sub-slider"> 

    <div class="slider"> 
    <div class="sub-box"><div class="title">1 GB</div> 
    </div> 

    <div class="sub-slider-confirmation-btn-wrp"> 
     <a href="#"> 
      <div class="sub-slider-confirmation-btn">Välj</div> 
     </a> 
    </div> 

</div> 
<hr> 

現在我想用這個標記將其插入一個div我的網頁上,像這樣:

function build_subscription_slider(subscriptions) { 
    $('.sub-slider-section').append($(subscriptions)); 
} 

在我的頁面的div來獲得插入HTML只是看起來像這個:

<div class="sub-slider-section">   
</div> 

我做錯了什麼?

+3

您正在附加'$(data)',但參數是'subscriptions'。推測這是一個錯字,你的代碼應該是'.append(訂閱);'...? –

+2

注意:這是一個很好的機會來看看瀏覽器的開發控制檯。它告訴你錯誤是什麼。總是先檢查你的工具。 – David

+0

@RoryMcCrossan是的,謝謝! – vonhact

回答

3

您有以上兩個問題。

在您的成功回調ajax請求中,您希望將數據傳遞給您的build_subscription_slider函數,如下所示。

success: function (data) { 
    build_subscription_slider(data); 
}, 

然後你想追加在subscriptions傳遞的參數。

function build_subscription_slider(subscriptions) { 
    $('.sub-slider-section').append(subscriptions); 
} 
+0

你是對的,爲此調試2h。我現在休息一下! – vonhact

+0

只是對您的答案進行了一些小修改。 '$()。append();'函數想要一個jQuery對象而不是html字符串。所以正確答案是:'$('。sub-slider-section')。append($(subscriptions));'。謝謝 – vonhact

+0

'$()。append();函數想要一個jQuery對象不是一個HTML字符串'這是不正確的。一個字符串是完全有效的。 –

相關問題