2013-04-27 61 views
3

我已經DOM如下,如何添加AJAX HTML響應旁邊當前格

<div id='level-1'> 
    <ul> 
    <li><span><a>Mike</a></span></li> 
    <li><span><a>John</a></span></li> 
    <li><span><a>Ket</a></span></li> 
</ul> 
</div> 

jQuery如下,

$(document).on('click','div[id^=[level] ul li span a',function(){ 

//Making ajax request,no problem in getting the response 
// Here I need to append response next to the current div i,e div#level-1 or div#leve-2 
}); 

ajax響應將是與上面相同DOMdividanchor tag的內容。 id將是level-2level-3我, +1轉換爲div的當前值。

回答

9

嘗試

$(document).on('click','div[id^=level] ul li span a',function(){ 
    var parentDiv = $(this).closest("div[id^=level]"); 

    $.ajax(...).done(function(html) { 
     parentDiv.after(html); 
    }); 

}); 
0

你有一點語法錯誤,你的選擇裏面,以及嘗試添加response你的DIV在success回調:

$(document).on('click','div[id^="level"] ul li span a',function(){ 
    var $this = $(this); 
    $.ajax({ 
     ........... 
     success: function(response){ 
      $this.closest('div[id^=level]').append(response) 
     }, 
    }); 
}); 
+0

這讓阿賈克斯成功回調裏面發生這樣做了。 – 2013-04-27 12:28:53

+0

@YuryTarabanko謝謝,更新:) – Eli 2013-04-27 12:33:02

+0

沒問題:)。順便說一句,你不需要在關閉中保存'$(this)'嗎? – 2013-04-27 12:35:44

0

對於您可以將Ajax響應將附加功能添加到請求的響應中,例如: (僞代碼)

$.ajax({ 
    url: "test.html", 
    context: document.body 
}).done(function() { 
    //add response functionality here e.g 
    if(var i; i < response.length; i++) { 
    $('#level-'+(i+1)).append('<div id=level-'+(i+1)+' some new data </div>'); 
    } 
}); 

如果您從具有多行的ajax請求中獲取數組 - 您可以遍歷每行並使用.append()jquery函數將新html附加到當前div。

http://api.jquery.com/append/

2

你可以添加父DIV這樣嗎?

<div id="levels"> 
<div id='level-1'> 
    <ul> 
    <li><span><a>Mike</a></span></li> 
    <li><span><a>John</a></span></li> 
    <li><span><a>Ket</a></span></li> 
    </ul> 
</div> 
</div> 

你可以在jQuery的

$("a").on("click",function(){ 
    // on ajax success 
    $(this).parent("#levels").append("whatever you want!"); 

}); 
+0

+1爲新思想。 – 2013-04-27 12:43:27

+0

傑里米,我可以添加新的元素,但我不'想要使用點擊事件..謝謝 – Europeuser 2015-05-11 12:58:45

+0

@Europeuser,這是一個問題嗎? 如果你不想使用點擊部分,你可以只使用這部分任何你想要的:$(this).parent(「#levels」)。append(「你想要什麼!」); – 2015-05-11 17:45:24

0
$('.submit').click(function() { 
    var html=''; 
    $.ajax({ 
     dataType: "json", 
     url: "http://www.yoururl.com/", 
     success: function (data) { 
      var content = 'Title : '+data.Title ; 
      content += ' Year : '+data.Year ; 
      content += ' Rated : '+data.Rated ; 
      content += ' Released : '+data.Released ; 
      $("#text").append(content); 

     } 
    }); 
}); 
+0

請添加關於您的代碼的說明 – Spidy 2016-10-18 09:56:40