вы можете использовать .nextAll()
, чтобы выбрать элемент длительности
$(myFile).nextAll("input[name='duration[]']").val("duration");
function getFileData(myFile){
var file = myFile.files[0];
var filename = [file.name];
$(myFile).next("input[name='file_name_helper[]']").val(filename);
$(myFile).nextAll("input[name='duration[]']").val('duration');
}
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> .
</script>
<div>
<input type="file" class="file_name" name="file_name[]"onchange="getFileData(this);" />
<input type="text" class="file_name_helper" name="file_name_helper[]"/>
<input type="text" class="duration" name="duration[]"/>
</div>
<div>
<input type="file" class="file_name" name="file_name[]" onchange="getFileData(this);" />
<input type="text" class="file_name_helper" name="file_name_helper[]" />
<input type="text" class="duration" name="duration[]"/>
</div>
<div>
<input type="file" class="file_name" name="file_name[]" onchange="getFileData(this);"/>
<input type="text" class="file_name_helper" name="file_name_helper" />
<input type="text" class="duration" name="duration[]"/>
</div>
или если вы уверены, что ваша разметка будет такой же, как сейчас, вы можете использовать .next().next()
, чтобы получить элемент длительности.
$(myFile).next().next().val("duration");