我试图让这个与选择器一起工作,而对于等等,但我并没有接近那个想要的东西。
<div class="product">
<div class="id">569865974598</div>
<div class="name">Ati Radeon Sapphire Hd 6850</div>
<div class="time">2013-02-14 03:13:33</div>
</div>
<div class="product">
<div class="id">654654654987</div>
<div class="name">Nvidia Geforce 9500gt</div>
<div class="time">2013-02-14 00:36:13</div>
</div>
<div class="product">
<div class="id">2561564898789</div>
<div class="name">Ati Radeon Sapphire Hd 6850</div>
<div class="time">2013-02-14 00:36:13</div>
</div>
预期(同时封装产品)
<div id="same">
<div class="product">
<div class="id">569865974598</div>
<div class="name">Ati Radeon Sapphire Hd 6850</div>
<div class="time">2013-02-14 03:13:33</div>
</div>
</div>
<div id="same">
<div class="product">
<div class="id">654654654987</div>
<div class="name">Nvidia Geforce 9500gt</div>
<div class="time">2013-02-14 00:36:13</div>
</div>
<div class="product">
<div class="id">2561564898789</div>
<div class="name">Ati Radeon Sapphire Hd 6850</div>
<div class="time">2013-02-14 00:36:13</div>
</div>
</div>
答案 0 :(得分:0)
尝试这样的事情:
$(document).ready(function(){
$('.product').each(function(){
// generate div id based on time e.g. 2013-02-14 00:36:13 -> id=20130214003613
var id = $(this).find('.time').html().replace(/[\s-:]/g,"");
var sameElement = $('#' + id);
if(sameElement.length == 0){
$('body').append('<div id=' + id + '></div>');
sameElement = $('#' + id);
}
$(this).appendTo(sameElement);
});
});
注意:拥有多个具有相同ID的div元素是不正确的,这就是为什么而不是id =&#39;相同的&#39;根据时间生成id
答案 1 :(得分:0)
首先,不要在几个元素上使用相同的id,id在HTML中必须是唯一的, 而是使用例如class属性。
此代码首先会找到所有唯一的时间,然后将所有时间组包含在div中,类别为“same”。
可在jsfiddle上使用:http://jsfiddle.net/RA9eb/
(function () {
var uniqueTimes = $.unique($('.product').map(function() {
return $(this).find('.time').text();
})).get();
$.each(uniqueTimes, function (i, time) {
$('.product').filter(function () {
return $(this).find('.time').text() == time;
}).wrapAll($('<div />').addClass('same'));
});
})();