jQuery - 使用变量作为函数参数

时间:2016-10-10 14:27:00

标签: javascript jquery

我想将动态变量用作动态javascript函数参数。但它将错误视为未定义的变量。

$.ajax({
    url: 'get_category_list.php',
    dataType: 'JSON',
    success: function (data) {
        var i = 1;
        $.each(data, function() {
            var id = this.id;
            //console.log(id);
            var edit = "<img src='../../dist/img/icon/edit.png' " +
            "style='border: 1px solid #999637; " +
            "border-radius: 2px' " +
            "title='Edit' " +
            "onclick='show_edit_form(id)'>";
            catTable.row.add([
                i++,
                this.name,
                this.level,
                this.create_date,
                edit
            ] ).draw();
        });
    }
});

请告诉我这里的确切问题是什么?

2 个答案:

答案 0 :(得分:1)

我猜错误发生在show_edit_form函数中。你必须在那里传递一些东西,在你的照顾下

 var edit = "<img src='../../dist/img/icon/edit.png' " +
            ...
            "onclick='show_edit_form(" + this.id + ")'>";

答案 1 :(得分:0)

在下面的代码中,您传递edit作为show_edit_form()的参数:

var edit = "<img src='../../dist/img/icon/edit.png' " +
           "style='border: 1px solid #999637; " +
           "border-radius: 2px' " +
           "title='Edit' " +
           "onclick='show_edit_form(edit)'>";
                                    ^^^^

也许你的意图是将元素本身作为参数传递。但是你的代码不会做,它甚至无法访问edit变量内联其定义。最简单的解决方案是将参数字段留空。因为在处理点击事件时您可以使用this访问它。

另一方面,正如其他人在评论中指出的那样,使用jQuery's .click()方法会更好。