我收到的 json
看起来像这样:
Object:
bpi:206000
buyout:4120000
itemId:133564
itemName:"Spiced Rib Roast"
name:"Flipflap"
quantity:20
timeLeft:"VERY_LONG"
undercut:0
我正在通过 jquery .each 函数填充表格。
其中一个元素被设置为在按下时触发一个函数。
将项目推送到表中的代码如下所示:
$.each(data, function(i, key){
items.push('<tr class="tr1"><td><a onclick="getItemData(' + key.itemId + ',' + key.itemName')" rel="item=' + key.itemId + '"">' + key.itemName + '</a>' + "</td><td>" + getAmount(key.buyout) + "</td><td>" + key.quantity + "</td><td>" + ifUndercut(key.undercut) + "</td><td>" + key.timeLeft.replace('_', ' ') + "</td></tr>");
});
问题出在这段代码上:
onclick="getItemData(' + key.itemId + ',' + key.itemName')"
这段代码给出了各种缺失语法错误的变体。
将 key.itemName
换成另一个 key.itemId
可以使 onclick 函数正常工作。
是字符串的格式问题吗?
如何让它与 key.itemName
一起使用?
最佳答案
问题是因为itemName
是一个字符串,所以输出的时候需要用引号括起来。您还缺少在值之后连接字符串的 +
。试试这个:
items.push('<tr class="tr1"><td><a onclick="getItemData(' + key.itemId + ',\'' + key.itemName + '\')" rel="item=' + key.itemId + '"">' + key.itemName + '</a>' + "</td><td>" + getAmount(key.buyout) + "</td><td>" + key.quantity + "</td><td>" + ifUndercut(key.undercut) + "</td><td>" + key.timeLeft.replace('_', ' ') + "</td></tr>");
请注意在值周围添加了 \'
。
我还强烈建议您研究不显眼和委托(delegate)事件处理程序的使用,因为 on*
事件属性现在非常过时,应尽可能避免使用。
关于javascript - onclick 函数 - json 字符串变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584479/