如何访问jquery的Success函数的结果属性

时间:2011-07-19 13:00:24

标签: ajax jquery

我将jQuery的success函数定义为:

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].number分配给number变量?

2 个答案:

答案 0 :(得分:0)

可能有更好的方法,但是success回调的一种方法是将result分配给某个全局范围变量并在委托调用中访问它

否则您可以通过这种方式将htmlString[i].number分配到rel代码

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);
}

答案 1 :(得分: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/