方案如下: 我调用buldMyStuff函数以下列方式多次构建图像。将img包装成“a”标签不是一种选择。
function buildMyStuff(item){
var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';
return tag;
}
function doClick(type,data){
//do stuff
}
让我们假设item.type值是“type”而item.data值是“data”。 这个问题,当我点击图像时,它说的类型没有定义。因此(我检查了构建的html结构)img最终看起来像这样:
<img src="someimg.png" onclick="doClick(type,data)" />
我需要做的是:
<img src="someimg.png" onclick="doClick('type','data')" />
然而,由于我使用'字符来包装整个标记而且“字符包装属性我不能使用其他任何东西。有人知道解决方案吗?
提前谢谢你。
答案 0 :(得分:1)
这是无效的;
var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';
应该是
var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />';
答案 1 :(得分:1)
function buildMyStuff(item){
var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />';
return tag;
}
答案 2 :(得分:1)
您可以使用'\'
来转义特殊字符。
var tag = <img src="someimg.png" onclick="doClick(' + item.Type + ',' + item.data+ ')" />';
=&GT;
var tag = '<img src="someimg.png" onclick="doClick(\'' + item.Type + '\',\'' + item.data+ '\')" />';