У меня есть объект строки (на самом деле его один раз), но это, кажется, что только целые числа могут быть переданы в функцию
Нет, но числа (и булевы, нулевой и undefined) являются единственными примитивами, которые приносят значение eval
для себя, если они строятся. Сделайте console.log(displayBidder)
, чтобы узнать, какой html вы создаете. Если идентификаторы номер станет
<button … onClick='decline(1, 2) '>Decline</button>
но если они ниточка станет
<button … onClick='decline(one, two) '>Decline</button>
(которые являются переменными!), И если вы использовали (не массив) объекты было бы даже be
<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
JavaScript принимает любой тип как аргумент функции. Что-то не так с вашим кодом. –
wats значение в 'obj.Data [i] .jobid',' obj.Data [i] .bidtime'. Показать еще код. –