JSON对象没有在函数中传递

时间:2011-08-01 07:09:11

标签: javascript jquery json jsp

我正在根据ajax调用的JSON响应动态创建一个html表,如下所示。我想将可点击事件与某些行相关联,这些行允许我对这些json对象进行一些后期处理。但是,我无法通过函数调用传递json对象,因为它没有将其拾取。你能帮帮我吗?如果我传递json对象的属性,我能够实现这一点,但我希望传递整个对象。

        $.get(url, { param: ID},
            function(data){                   

                $.each(data, function(index, product) {                                               
                   $('<tr>').appendTo($body)   
                    .append($('<td>').text(product.ID))        
                    .append($('<td>').text(product.firstName))      
                    .append($('<td>').text(product.lastName))
                    .append($('<td>').text(product.email))        
                    .append($('<td>')
                    .append($('<a href=\"javascript:deleteProduct(' + product.ID + ');\">')
                    .append($('<img src=\"/images/delete.png\">'))))
                    .append($('<td>')
                    .append($('<a href=\"javascript:editProduct(' + product + ');\">')
                    .append($('<img src=\"/images/edit.png\">'))));

                });

我无法在此处调用editProduct(product)func调用,但deleteProduct(id)可以正常工作。

感谢。

1 个答案:

答案 0 :(得分:1)

product是您尝试将其作为字符串放置的对象,这意味着该函数将如下所示:editProduct(Object [object])或类似的。

快速解决方案是在将其放入字符串之前使用类似stringify的方法。

但更好的解决方案是删除内联js,在使用它们之前创建元素,使用.click()函数来设置功能,然后将它们附加到tr。