我有字符串(实际上它的时间)的对象,但似乎只有整数允许被传递到函数
不可以,但数字(和布尔值,空和未定义)是唯一的基元,如果它们被串化,它们将为它们自己产生一个有效值。做一个console.log(displayBidder)
看看你生产的是什么html。如果ID号将成为
<button … onClick='decline(1, 2) '>Decline</button>
,但如果他们的字符串会成为
<button … onClick='decline(one, two) '>Decline</button>
(这是变量!),如果你使用的(非数组)对象它甚至会是
<button … onClick='decline([object Object], [object Object]) '>Decline</button>
这意味着您需要正确序列化值,以便它们可以被解释。 JSON.stringify
可以做到这一点,但有一个更好的解决方案:
使用适当的事件处理程序。内联事件属性被拒登,特别是如果由js创建的话。相反,使用
$("#display")
.html(displayBidder)
.append($("<button class='btn'>Decline</button>").on("click", /*(function(i) {
return*/ function(event) {
alert(obj.Data[i].jobid);
// and do whatever you want
}/*;
})(i)*/));
取消对IEFE,如果你在一个循环中使用该片段,并在处理器执行时i
发生了变化。有关说明,请参阅JavaScript closure inside loops – simple practical example
如果您不使用onclick = xxx,而是使用事件侦听器,则这是一个整体清理器。 – jfriend00 2013-05-09 07:19:33
JavaScript接受任何类型作为函数参数。你的代码有问题。 – 2013-05-09 07:20:22
wats'obj.Data [i] .jobid','obj.Data [i] .bidtime'中的值。展示更多代码 – 2013-05-09 07:21:44