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”,不进行排序。这是过滤。谢谢你的回答!有没有什么方法可以让我带回已删除的孩子?您可以存储已删除的孩子,并在需要时插入。。