Javascript 按属性分组div

Javascript 按属性分组div,javascript,jquery,Javascript,Jquery,基于此,我尝试根据div属性“message id”对div进行分组。 因此,所有具有相同“消息id”的div都应该由一个类名为group的div包装 <div class="message" message-id="1">a</div> <div class="message" message-id="1">a</div> <div class="me

基于此,我尝试根据div属性“message id”对div进行分组。 因此,所有具有相同“消息id”的div都应该由一个类名为group的div包装

<div class="message" message-id="1">a</div>
<div class="message" message-id="1">a</div>
<div class="message" message-id="2">a</div>
<div class="message" message-id="2">a</div>
<div class="message" message-id="3">a</div>
a
A.
A.
A.
A.
但是我不能用属性来代替类名。以下是我尝试过的:

var groups = {};
$('.day').each(function () {
    var className = this.getAttribute("message-id").match(/(day\d+)/)[1],
        $group = groups[className];
    if (!$group) {
        $group = $('<div />', {
            'class': 'group'
        }).insertAfter(this);
        groups[className] = $group;
    }
    $group.append(this);
})
var-groups={};
$('.day')。每个(函数(){
var className=this.getAttribute(“消息id”).match(/(day\d+/)[1],
$group=组[类名];
如果(!$组){
$group=$(“”{
“类”:“组”
}).在(本)之后插入;
组[类名]=$group;
}
$group.append(本);
})

这是您使用
getAttribute
函数的正确路径,但不需要在代码中使用
match
函数,因为
getAttribute
已经返回组的id。另外,您的
$('.day')
没有针对循环的正确类,在您的示例中,它应该针对
$('.message')

var-groups={};
$('.message')。每个(函数(){
var className=this.getAttribute(“消息id”),
$group=组[类名];
如果(!$组){
$group=$(“”{
“类”:“组”
}).在(本)之后插入;
组[类名]=$group;
}
$group.append(本);
})
.group{
边框:1px纯红;
边缘底部:5px;
}

A.
A.
A.
A.
a