2011-07-19 50 views
1

的成功函數的結果財產我已經jQuery的的success函數定義爲:如何訪問的jQuery

success: function(result) { 
    var htmlString = [result]; 
    for (i = 0; i < htmlString.length; i++) { 
     $('#MyGrid tbody').append('<tr><td><a href="#">' + htmlString[i].name+ '</a></td><td><a href="#" class="remove">Remove</a></td></tr>'); 
    } 
}, 

和事件處理程序與delegate約束:

$('#MyGrid').delegate('a.remove', 'click', function() { 
    var name= ;$(this).closest('tr').find("td").eq(0).find('a').text(); 
    var number = ; //here i need to access htmlString[i].number 
    alert(number); 
} 

我如何分配htmlString[i].numbernumber變量?

回答

0

可能會有更好的辦法,但一個方式是在success回調分配result一些全局範圍變量和訪問它在委託調用

否則你可以這樣來做分配htmlString[i].numberrel標籤

success: function(result) { 

       var htmlString = [result]; 
       for (i = 0; i < htmlString.length; i++) { 

       $('#MyGrid tbody').append('<tr><td><a rel="'+htmlString[i].number+'" href="#">' + htmlString[i].name+ '</a></td><td><a href="#" class="remove">Remove</a></td></tr>'); 
       } 

      }, 

,並在委託調用

 $('#MyGrid').delegate('a.remove', 'click', function() { 

       var name= $(this).closest('tr').find("td").eq(0).find('a').text(); 
       var number = $('#MyGrid').delegate('a.remove', 'click', function() { 

       var name= $(this).closest('tr').find("td").eq(0).find('a').text(); 
       var number = $(this).closest('tr').find("td").eq(0).find('a').attr('rel'); 
       alert(number); 
    } 
      alert(number); 
} 
+0

變種數= $(本).closest(」 TR ')發現( 「TD」)當量(0).find(' 一個rel') ')ATTR('; 這一行wrkd罰款爲我的代碼thnx 3nigma。 – michael

+0

很高興幫助 – Rafay

0

ŧ他似乎是一個完美使用案例.data()

/*snip */ 
for (i = 0; i < htmlString.length; i++) { 
    var $row = $('<tr><td><a href="#">' + htmlString[i].name + '</a></td><td><a href="#" class="remove">Remove</a></td></tr>'); 
    $row.find("a.remove").data("number", htmlString[i].number); 

    $('#MyGrid tbody').append($row); 
} 

然後在事件處理:

$('#MyGrid').delegate('a.remove', 'click', function() { 
    var number = $(this).data("number"); 
    alert(number); 
}); 

這裏有一個工作示例:http://jsfiddle.net/BRZD7/