Проблема заключается в том, что val()
перезаписывает любое ранее существующее значение. Таким образом, будет показано только окончательное значение, установленное в цикле.
Чтобы исправить это, вы можете использовать map()
для создания массива значений, а затем использовать join()
при его отображении:
$(document).ready(function() {
setTimeout(function() {
var names = $(".item-title").map(function(index) {
return $(this).text();
}).get();
$('.names').val(names.join(','));
}, 1000);
});