Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Cómo iterar en múltiples listas de objetos en jQuery para hacer un cálculo

Contexto : CMPT significa compte, que es Cuenta en inglés, la aplicación puede tener varias cuentas que contienen un campo de hospitalización y para cada campo de hospitalización presente en UNA cuenta, quiero poder calcular el total cost de cada hospitalización.

Actualmente puedo calcular el campo total(mntTotHosp) que se obtiene haciendo el cálculo del campo Tarif quotidien ( TariQuoti) * Nombre de jours (NbJrsHosp) . En español: Daily price * numbers of days .

Pero esto funciona solo para la primera hospitalización (ListeHospitalisation[0].mntTotHosp) al hacer esto:

 function CalculMntTotHosp() { var tariQuoti = $("input[id$='TariQuoti']").val().replace(",", ".") || 0; var nbJrsHosp = $("input[id$='NbJrsHosp']").val().replace(",", ".") || 0; var mntTotHosp = tariQuoti * nbJrsHosp $("input[id$='MntTotHosp']").val(mntTotHosp.toFixed(2).replace(".", ",")); }

Mi problema :

Me gustaría hacer esto para cada CmptETS en la lista ListeCmptETS y cada Hospitalisation contenida en ListeHospitalisation que está contenida en ListeCmptETS . Actualmente solo es capaz de calcular el total de la primera hospitalización presente en la primera cuenta.

Aquí hay una captura de pantalla de los 3 campos utilizados para hacer el cálculo, para tener una mejor comprensión de los datos: ingrese la descripción de la imagen aquí

Lo siento, el texto está en francés en la aplicación, pero aquí hay una representación visual para ver los datos:

ingrese la descripción de la imagen aquí

Con suerte, esto fue lo suficientemente claro, ¿alguien podría ayudar? Muchas gracias :)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Fue un poco difícil saber qué sugerir sin ver más código, pero tal vez este ejemplo con sabor a vainilla pueda ayudarlo a comenzar:

 const list = Array.from(document.querySelectorAll(".listeCmptETS")); Array.from(list).forEach((listeCmptETS) => { const hospSection = listeCmptETS.querySelector(".listeHosp"), listeHospitalisation = Array.from(hospSection.querySelectorAll(".stay")); listeHospitalisation.forEach((thisStay) => { CalculMntTotHosp(thisStay); }); }); function CalculMntTotHosp(stay) { const toNum = (str) => +(str.replace(',', '.') || 0), toCurrency = (num) => num.toFixed(2).replace('.', ','), tariQuoti = toNum( stay.querySelector('.TariQuoti').value ), nbJrsHosp = toNum( stay.querySelector('.NbJrsHosp').value ), output = toCurrency(tariQuoti * nbJrsHosp); //console.log(`daily: ${tariQuoti}`, `days: ${nbJrsHosp}`); stay.querySelector('.MntTotHosp').value = output; }
 .listeCmptETS { margin-bottom: 1rem; } .section { width: 20rem; min-height: 2.5rem; padding-top: 0.4rem; border: 1px solid grey; } .listeHosp {border-top: none; } .stay { position: relative; padding: 0.3rem; } .stay div { margin-bottom: 0.3rem; } .stay input {display: inline-block; position: absolute; left: 3rem; }
 <div class="listeCmptETS"> <div class="section">(non-hospitalization content goes here)</div> <div class="listeHosp section"> <div class="stay"> <div>Daily<input class="TariQuoti" value="21,00" /></div> <div>Days<input class="NbJrsHosp" value="2" /></div> <div>Tot<input class="MntTotHosp" /></div> </div> <div class="stay"> <div>Daily<input class="TariQuoti" value="22,00" /></div> <div>Days<input class="NbJrsHosp" value="" /></div> <div>Tot<input class="MntTotHosp" /></div> </div> </div> </div> <div class="listeCmptETS"> <div class="section">(non-hospitalization content goes here)</div> <div class="listeHosp section"> <div class="stay"> <div>Daily<input class="TariQuoti" value="23,00" /></div> <div>Days<input class="NbJrsHosp" value="1" /></div> <div>Tot<input class="MntTotHosp" /></div> </div> <div class="stay"> <div>Daily<input class="TariQuoti" value="24,00" /></div> <div>Days<input class="NbJrsHosp" value="3" /></div> <div>Tot<input class="MntTotHosp" /></div> </div> </div> </div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda