2

我正在尝试自动填充可见元素的日期范围。只要只有一个空的结束日期被填充,我的代码就可以正常工作,但是我很难理解为什么 clone() 方法运行了两次。

小提琴在这里

基本上,它们是工作和角色。一个工作可以有很多角色,我猜父工作中的角色可能有重叠的开始和结束时间,但在这方面不是必需的。Jobs 可以并且确实可以重叠开始时间和结束时间。该代码通过查找 ROLES 的 HTML 中描述的开始和结束时间来工作,如果没有指定结束时间,则将角色结束时间填充为“CURRENT”。然后,为了填充 JOB 时间,它收集数组中的所有开始时间start(var start = []) 和数组中的所有结束时间end(var end = [])。然后它对 和 进行排序startend并将第一个start索引(日期)作为 JOB 的开始日期,并将最后一个索引(日期)end作为 JOB 的结束日期。不知何故,问题就在眼前$(this).find('>h1').after($('.workexperience time.end[datetime=' + end[end.length-1] + ']').clone()); ,因为数组似乎是正确的。

您能帮我指出代码中错误的正确方向吗?

每个 nnnnnn:$('.workexperience time.end[datetime=' + end[end.length-1] + ']')克隆之前的查询是:

[​当前​​​,​当前​​​]

[ ​2012 年 9 月​​​]

[​当前​​​,​当前​​​,​当前​​​,​当前​​​]

[ ​2006 年 3 月​​​]

[ ​2002 年 6 月​​​]

end[end.length-1]变量 end的查询结果为:

2012-11

2012-09

2012-11

2006-03

2002-06

4

1 回答 1

2

您的 $('.workexperience time.end[datetime=' + end[end.length-1] + ']') 正在收集所有工作,而如果我理解正确,它应该只限于当前工作:

$(this).find('time.end[datetime=' + end[end.length-1] + ']').clone()

小提琴:http: //jsfiddle.net/jYnZy/14/

于 2012-11-06T03:23:39.520 回答