Вы пометили вопрос с помощью jQuery, поэтому мне интересно, почему вы не используете библиотеку для создания своего контента:
var content = [];
for (var i = 0; i < data.routesout.length; ++i) {
content.push($('<label/>', { 'for': 'route' + i, text: data.routesout[i].name }));
content.push($('<input/>', { change: yourEventHandler, type: 'text', name: 'route' + i, id: 'route' + i, value: date.routesout[i].percent, change: yourEventHandler }));
}
Делая это таким образом, вы можете связать элемент обработчика с помощьюэлемент, как вы их строите.(Я использовал «изменение» в качестве примера, но вы могли бы привязать обработчики для любого события, которое вы хотите, таким же образом.)
В конце вы можете добавить все созданные элементы, как хотите, или вы можетедобавляйте их по ходу дела вместо создания массива.