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

时间:2012-04-10 11:51:10

标签: javascript

您好我是java脚本的新手。在传递其值包含连字符的字符串变量作为函数参数时遇到问题。 Fire bug抛出一个错误,说'标识符在数字文字后立即启动'

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

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

变量objid的值类似于c2692d22-a407-4d38-85ee-5c16f25bcce7。 Firebug通过指向第14位(在上面的示例中为4),在数字文字'错误后立即启动标识符。

尝试使用不同的引号组合传递变量,如其他帖子中所建议但dint工作。有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

你需要在生成html之前转义objid,并在使用javascript中的值时进行unescape。

做这样的事情......

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

其中counter对于每个obj / objid只是一个不同的数字/值。 并在js:

function view_content(objidcounter){    
var real_objid = document.getElementById('objid' + objidcounter).innerText;
...
...

}

答案 1 :(得分:0)

您应该引用objid值,例如

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

答案 2 :(得分:0)

因为它渲染时显示为

view_content(FOOBARSTRING)

你需要引号。

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

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