需求描述:頁面上可以動態新增資料,例如table,點擊按鈕可以動態新增行。又或頁面
載入時table資料是透過ajax從後台取得的。而這時我們想要取得其中的某個值,又該如何取得呢?
如果是要透過某個事件來取得的例如click,mouseover等等,則可以使用live()方法
$(".button").live("click",function(){
console.info($("#mytd") .html());
})
而如果不是透過某個事件,當頁面載入的時候我們就要取得值或進行其他操作
live( )方法就不行了,因為我們無法傳入一個事件。
例如以下程式碼:
以上程式碼很簡單,就是透過post從後台傳回的值加到
後台回傳資料為北京深圳 |
而我們要在post之後取得id為mytd的值,
此時是取得不到的,我們從瀏覽器中就可以觀察出問題:
從以上可以看出在alert的時候數據並還沒有加載出來控制台也並沒有打印出信息,所以此時是取不到數據的。
使用ajaxComplete()方法可以在請求完成時運行要執行的代碼,我們修改為如下:
$(function() {
$.post("admin/UserForumthemeBabygrowupFrontList.do",{},function(data){
console.info (data.table);
$("#tab").append(data.table);
})
$("#tab").ajaxComplete(function(){ //待請求完成式執行
alert($("#mytd").html());
})
});
此時再取得的時候頁面已載入完資料。