javascript代码错误显示未定义的值

时间:2011-11-10 21:24:25

标签: javascript

function abc(id, name){
   var button = '<img src="/images/abc.png" onclick="getvalue('+id+','+name+')"/>';
   $('Div1').set('html',button);
}

我的这段代码无效。它给出了一个错误。 错误是:假设name的值是Gaurav。然后它给出错误Gaurav没有定义。 请帮帮我,告诉我错误在哪里。

5 个答案:

答案 0 :(得分:4)

这是因为您生成的代码使用的字符串值没有分隔符。

如果id42nameGaurav,您将生成代码getvalue(42,Gaurav)而不是getvalue(42,'Gaurav')

在代码中的字符串周围放置撇号:

var button = '<img src="/images/abc.png" onclick="getvalue('+id+',\''+name+'\')"/>';

请注意,只有字符串值不包含任何需要编码的字符(如撇号或auotation标记)时,此方法才有效。

答案 1 :(得分:0)

你需要名字和身份证号码。

var button = '<img src="/images/abc.png" onclick="getvalue(\''+id+'\',\''+name+'\')"/>';

答案 2 :(得分:0)

您需要将函数参数括在引号中:

var button = '<img src="/images/abc.png" onclick="getvalue('+id+',\''+name+'\')"/>';

通过省略引号,您将未定义的变量Gaurav作为参数传递给函数。你真正打算传递字符串"Gaurav"而不是变量。

id周围的报价也可能是必要的:

var button = '<img src="/images/abc.png" onclick="getvalue(\''+id+'\',\''+name+'\')"/>';

答案 3 :(得分:0)

当您取代getvalue的值并且未传递引用时,可能会在调用name时发生错误。实质上,当代码被发出时,它会读取...

<img src="/images/abc.png" onclick="getvalue(something, Gaurav)" />

这会导致javascript引擎出现问题,因为它不知道Gaurav是什么..尝试引用该值..

var button = '<img src="/images/abc.png" onclick="getvalue(\''+id+'\',\''+name+'\')"/>'

这将使某些东西产生影响..

<img src="/images/abc.png" onclick="getvalue('something', 'Gaurav')" />

答案 4 :(得分:0)

你应该提一下代码的意图,因为它并不完全清楚。我猜它需要id和名称,并动态创建一个图像。我不确定你是否使用jQuery,因为我看到使用“$”。

使用字符串连接以这种方式设置单击处理程序并不像以编程方式那样安全。您可以使用原始方法轻松遇到代码注入问题。例如如果名字中有“O'Reilly”这个词。

如果你正在使用jQuery,你可以这样做:

var button = $('<img src="...">').click(function() { getvalue(id, name); });

您可以在此处找到更多示例:http://api.jquery.com/click/