我有字符串(實際上它的時間)的對象,但似乎只有整數允許被傳遞到函數
不可以,但數字(和布爾值,空和未定義)是唯一的基元,如果它們被串化,它們將爲它們自己產生一個有效值。做一個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