Javascript:无法使用onClick将变量作为参数传递

时间:2011-10-23 18:30:19

标签: javascript jquery onclick arguments

我有这段代码(jquery):

function somefunction() {

        $.ajax({
        type : 'POST',
        url : 'post.php',
        dataType : 'json',

        success : function(data){

            var mess = "";  
            var count = 0;

            while (count < (data.length - 1))
            {

                 mess = mess + "<a href=# onclick=deletePerson("JohnDoe");return false;><img src=x.gif></a>" + data[count].name + "<br />";
                 count++;
            }


            $('#mydiv').html(mess).fadeIn('fast');


        },
    });


}
function deletePerson(arg) {...}

当我运行时,一切正常。 但是,当我想用​​onclick传递变量(而不是“JohnDoe”)时,它会停止工作:

var myvar = "JohnDoe";
mess = mess + "<a href=# onclick=delete(myvar);return false;><img src=x.gif></a>" + data[count].name + "<br />";

我的编辑告诉我:“未解决的变量或类型”。

从未遇到传递参数的问题,但是使用这个onClick-thing它只是不起作用......

任何人都知道我做错了什么?

非常感谢!

编辑:约瑟夫的帖子解决了JohnDoe问题(谢谢!),但是,当我提出时:

var myvar = data[count].name;

它停止工作......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要在

中连接变量
myvar = "JohnDoe";
mess = mess + "<a href=# onclick=delete('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />";

答案 1 :(得分:0)

delete是javascript中的保留关键字,您应该重命名您的函数。

...
mess = mess + "<a href=# onclick=deletePerson('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />";
...
function deletePerson(name) {...}