Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 根据每个部门的生日计算年龄_Jquery - Fatal编程技术网

Jquery 根据每个部门的生日计算年龄

Jquery 根据每个部门的生日计算年龄,jquery,Jquery,我有一个JQuery代码来根据日期计算年龄,但我似乎不能应用于多个Div <div class="bday"> <span id="age"></span> <span id="birthdate">01/21/1983</span> </div> <div class="bday"> <span id="age"></span> <span

我有一个JQuery代码来根据日期计算年龄,但我似乎不能应用于多个Div

<div class="bday">
     <span id="age"></span>
     <span id="birthdate">01/21/1983</span>
</div>
<div class="bday">
     <span id="age"></span>
     <span id="birthdate">01/21/1982</span>
</div>
<div class="bday">
     <span id="age"></span>
     <span id="birthdate">01/21/1981</span>
</div>

$('#birthdate').each(function() {
    var ptag = $(this).text();
    var birthdate = new Date(ptag);
    var cur = new Date();
    var diff = cur - birthdate;
    var age = Math.floor(diff / 31536000000);
    $('#age').append(age);
});

01/21/1983
01/21/1982
01/21/1981
$('#birthdate')。每个(函数(){
var ptag=$(this.text();
var出生日期=新日期(ptag);
var cur=新日期();
var diff=cur-出生日期;
变量年龄=数学下限(差值/31536000000);
$('年龄')。附加(年龄);
});
我上了累人的课,但每个时段都出现了所有的年龄段。 我还可以做些什么,使此代码应用于每个div,而不是出现在一个div上?

请使用此HTML:

<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1983</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1982</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1981</span>
</div>

我只将id改为Class和append line。

正如我评论您的问题时所说的,您必须将所有is改为Class,然后使用最接近的函数fir查找父项,然后查找另一个作为生日兄弟的子项

此外,您也不能使用append,因为它将始终附加以前的数据。因此,请使用text()或html()

您修改的jQuery:

$('.birthdate').each(function() {
    var ptag = $(this).text();
    var birthdate = new Date(ptag);
    var cur = new Date();
    var diff = cur - birthdate;
    var age = Math.floor(diff / 31536000000);
    $(this).closest("div").find('.age').html(age);
});
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1983</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1982</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1981</span>
</div>
您修改的HTML:

$('.birthdate').each(function() {
    var ptag = $(this).text();
    var birthdate = new Date(ptag);
    var cur = new Date();
    var diff = cur - birthdate;
    var age = Math.floor(diff / 31536000000);
    $(this).closest("div").find('.age').html(age);
});
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1983</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1982</span>
</div>
<div class="bday">
     <span class="age"></span>
     <span class="birthdate">01/21/1981</span>
</div>

01/21/1983
01/21/1982
01/21/1981

不能将多个id用作同一名称。为此使用类。
id
应该是唯一的,并用于页面上的单个元素<当您需要选择多个元素时,应使用code>class。感谢您的努力!谢谢你的努力为什么你要复制粘贴答案?弗雷恩·科诺克你在说什么@javedrathod@javedrathod,请查看我在评论中对此问题的回答。然后责怪我,我在本地做了这件事,然后我把这个答案贴在这个问题上。我不是复印机,我只是说你抄我的答案。并且只将“.bday”更改为div