Javascript 如何对具有相同值的元素进行排序

Javascript 如何对具有相同值的元素进行排序,javascript,html,Javascript,Html,例如: <div id="aphaOrder"> <div class="value" data-key="key1">olark</div> <div class="value" data-key="key1">snapengage</div> <div class="value&qu

例如:

<div id="aphaOrder">
    <div class="value"  data-key="key1">olark</div>   
    <div class="value"  data-key="key1">snapengage</div> 
    <div class="value"  data-key="key1">helponclick</div>
    <div class="value"  data-key="key2">hangouts</div>
    <div class="value"  data-key="key2">atlass</div> 
    <div class="value"  data-key="key3">hipchat</div>   
    <div class="value"  data-key="key3">chat hip</div>
</div>

奥拉克
快速啮合
帮助点击
闲逛
阿特拉斯
嘻哈
闲聊
我只想保留那些
数据键
属性为“key1”的div,其他div应该被删除。 我不知道怎么开始。我想我应该在“aphaOrder”后面加上append,但是。。。
抱歉英语不好…

选择所有div并查看sata属性。如果它不是您想要的,请将其删除

document.queryselectoral(“#aphaOrder div”).forEach(div=>div.dataset.key!==“key1”和&div.remove())

奥拉克
快速啮合
帮助点击
闲逛
阿特拉斯
嘻哈
闲聊

看起来您不是在尝试排序,而是在进行筛选,只保留其他排序。您可以选择所有匹配的元素,然后删除它们:

const elementsToRemove=document.queryselectoral(“#aphaOrder>[data key=key1]”);
for(elementsToRemove的常量元素){
element.parent.removeChild(element);
}
const$mainContainer=document.getElementById('aphaOrder');
for(常量nodeElement$maincainer.childNodes){
if(nodeElement.getAttribute&&nodeElement.getAttribute('data-key')=='key1'){
$maincainer.removeChild(nodeElement);
}
}

奥拉克
快速啮合
帮助点击
闲逛
阿特拉斯
嘻哈
闲聊

需要排序的是什么?您在标题中提到排序,但在标题中没有提到排序description@TedBrownlow数据键仅保留此div,其中数据键为“key1”,不进行排序。这是过滤。谢谢你的回答!有没有什么方法可以让我带回已删除的孩子?您可以存储已删除的孩子,并在需要时插入。。