首页 > 解决方案 > Jquery 只返回每个元素迭代的第一个计算

问题描述

我是 js 新手,请帮忙,代码只返回数据库中第一个输入的计算。所以它为每次迭代打印出相同的值。

似乎循环没有中断,所以它只计算第一个输入。我试图理解它并不断更改代码,但结果要么是“NaN”,要么是第一次计算。

const firebaseRef = firebase.database().ref('listing/);

firebaseRef.on("value", function(snapshot){
snapshot.forEach(snap=>{
const listing = snap.val();

document.getElementById("listing").innerHTML += `
<p class=input value=${dB.dBname}></p>
<p class=result></p>
`
})

$(document).each(function(){
    $('.result').html(getAge($('.input').val())+" years");
});

// getAge code from https://stackoverflow.com/questions/10008050/get-age-from-birthdate/10008120

function getAge(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    
    var age = today.getFullYear() - birthDate.getFullYear();
    
    var m = today.getMonth() - birthDate.getMonth();
    
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="listing"></div>

标签: javascriptjqueryloopsiterationbreak

解决方案


推荐阅读