Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将包含连字符值的字符串变量作为java脚本函数参数传递_Javascript - Fatal编程技术网

Javascript 如何将包含连字符值的字符串变量作为java脚本函数参数传递

Javascript 如何将包含连字符值的字符串变量作为java脚本函数参数传递,javascript,Javascript,嗨,我是java脚本的新手。传递值包含连字符作为函数参数的字符串变量时出现问题。Fire bug抛出一个错误,表示“标识符在数字文字之后立即启动” 我正在使用flexigrid显示数据。在每一行中都放置了一个图像。单击该图像时,应调用java脚本函数。flexigrid记录内容的设置在java中完成,如下所示: record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+objid+")

嗨,我是java脚本的新手。传递值包含连字符作为函数参数的字符串变量时出现问题。Fire bug抛出一个错误,表示“标识符在数字文字之后立即启动”

我正在使用flexigrid显示数据。在每一行中都放置了一个图像。单击该图像时,应调用java脚本函数。flexigrid记录内容的设置在java中完成,如下所示:

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+objid+")'/> ");
record.put(“查看”,“查看”);
可变对象的值类似于c2692d22-a407-4d38-85ee-5c16f25bcce7。 Firebug通过指向第14位(在上面的示例中为4),在“数值文字”错误后立即开始抛出标识符


正如在其他帖子中建议的那样,尝试用不同的引号组合传递变量,但效果不佳。有人能帮我吗?

你应该引用
objid
值,比如

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");
record.put(“查看”,“查看”);

因为当它渲染时,它显示为

view_content(FOOBARSTRING)
你需要报价

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> ");
record.put(“查看”,“查看”);

理想情况下,您不会直接在html标记中添加onclick处理程序。

您需要在生成html之前转义objid,并在javascript中使用该值时取消转义

像这样做

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+ COUNTER + ")'/><div style='display:none' id='objid"+ COUNTER + "'>" + objid + "</div> ");

我试过了。在这种情况下,它不会计算objid,而是使用objid本身作为值。objid本身是什么?
“objid”
字符串是否成为参数,或者是
objid
与字符串不同?只是我以错误的方式转义了引号。以建议的方式逃离它。。谢谢你快速及时的回复,我试过了。在这种情况下,它不会计算objid,而是使用objid本身作为值。您需要显示更多代码,因为您所说的objid是一个带破折号的字符串,但现在您说它正在做其他事情。只是我以错误的方式转义引号。以建议的方式逃离它。。感谢您快速及时的回复。。。
function view_content(objidcounter){    
var real_objid = document.getElementById('objid' + objidcounter).innerText;
...
...

}