Re: [問題] ajax取得資料後填入對應的位置??

看板Ajax作者 (米沙)時間15年前 (2010/10/14 18:21), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串2/5 (看更多)
$.each(url,function(i,n){ $.post(n,function(data){ $("body").append('<a href="'+n+'">'+title+'</a><br />'); }); }) 一邊讀取一邊產生行嗎? 如果你要全部讀取完畢要產生 宣告物件把POST回來的TITLE 塞在 物件裡面 var url = new Object(); $.each(url,function(i,n){ url[i] = {"url":n}; $.post(n,function(data){ url[i]['title'] = title; }); }) 全部 刷完畢之後 在 EACH URL 這個 物件 ※ 引述《no1kk (心中在下雨)》之銘言: : 我正在做一個功能 : 首先會拿到一堆網址的陣列 : 然後我將這些網址加上連結放在頁面中 : 接著我要分別依照網址去擷取此網頁的title並將之加到對應連結的title上 : (網址都是內部網域的) : 這些步驟我卡在取得title之後放到對應的連結這個步驟 : (我不能去修改那些網頁的內容) : 我無法得知每個title應該要對應到哪個連結 : 傳回來的資料也沒有網址 : 簡易範例: : var url=['test/index1.php','test/index2.php'.....] : var n=url.length; : for(var i=0;i<n;i++){ : var u=url[i]; : $("body").append('<a href="'+u+'">'+u+'</a><br />'); : $.post(u,function(data){ : var title.........(擷取title) : 這裡將title塞入連結中,但是我沒有網址可以對應.... : }); : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.85.101

10/14 19:03, , 1F
恩,基本上的確就是一個讀完再讀一個就可以解決問題....
10/14 19:03, 1F

10/14 19:12, , 2F
each使用時,他會等fn結束之後才進行下一個物件,對嗎?
10/14 19:12, 2F

10/14 19:23, , 3F
是,不過 ajax 是非同步的,他不會等到ajax跑完。
10/14 19:23, 3F

10/15 10:41, , 4F
這裡我的疑問是,ajax不是同步的那理論上ajax回傳的時候
10/15 10:41, 4F

10/15 10:41, , 5F
n已經不是原本的n了,不是嗎? (但是實際上這個是可以work的)
10/15 10:41, 5F

10/15 10:42, , 6F
是因為每個post都包在不同的fn裡面,每個fn有自己的n,這樣?
10/15 10:42, 6F

10/15 11:14, , 7F
each時的 n 是獨立的 scope , 這跟跑迴圈不一樣.
10/15 11:14, 7F
文章代碼(AID): #1CjjcuVK (Ajax)
文章代碼(AID): #1CjjcuVK (Ajax)