Tengo HTML como a continuación
<div class="link-field"> <div class="form-group assets-form"> <input type="text" name="description" id="description" class="assets-input" placeholder="For example, Youtube Link"> <input type="text" name="link" id="link" class="assets-input" placeholder="For example, https://www.youtube.com/"> </div> <div class="form-group assets-form"> <input type="text" name="description" id="description" class="assets-input" placeholder="For example, Youtube Link"> <input type="text" name="link" id="link" class="assets-input" placeholder="For example, https://www.youtube.com/"> </div> </div>He intentado iterar sobre cada formulario de activos y crear un objeto como el siguiente
[ { "link": "http://google.com/one", "description": "Link One" }, { "link": "http://google.com/two", "description": "Link Two" } ]usando la siguiente función
$.map($('.assets-form'), function(field) { console.log(field) });Aquí no puedo construir el hash después de recorrer cada div
puede iniciar la función de mapa después de que se haya completado el formulario
en mi muestra, agrego un botón para hacer clic después de que se haya completado la entrada, puede recuperar el valor del campo por $(field).find({fieldSelector})
function mapField() { let links = []; links = $.map($('.assets-form'), function(field) { return { link:$(field).find('#link').val(), description:$(field).find('#description').val(), } }); console.log(links); } <div class="link-field"> <div class="form-group assets-form"> <input type="text" name="description" id="description" class="assets-input" placeholder="For example, Youtube Link"> <input type="text" name="link" id="link" class="assets-input" placeholder="For example, https://www.youtube.com/"> </div> <div class="form-group assets-form"> <input type="text" name="description" id="description" class="assets-input" placeholder="For example, Youtube Link"> <input type="text" name="link" id="link" class="assets-input" placeholder="For example, https://www.youtube.com/"> </div> </div> <button onclick="mapField()">map field</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>