数组的Jquery clone()似乎克隆了两次

时间:2012-11-06 02:37:14

标签: javascript jquery

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

小提琴是here

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

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

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

[ 目前 , 目前 ]

[ 2012年9月 ]

[ 目前 , 目前 , 目前 , 目前 ]

[ 2006年3月 ]

[ 2002年6月 ]

变量end的查询end[end.length-1]导致:

2012-11

2012-09

2012-11

2006-03

2002-06

1 个答案:

答案 0 :(得分:2)

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

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

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