5

javascriptで重複したIDを含むタグを確認するには?

4

3 に答える 3

13

これを試して:

var nodes = document.querySelectorAll('[id]');
var ids = {};
var totalNodes = nodes.length;

for(var i=0; i<totalNodes; i++) {
    var currentId = nodes[i].id ? nodes[i].id : "undefined";
    if(isNaN(ids[currentId])) {
        ids[currentId] = 0;
    }                 
    ids[currentId]++;
}

console.log(ids);

http://jsfiddle.net/sekVp/1

于 2012-12-17T16:23:02.000 に答える
0

承認された回答と同じことを達成するためのより短い方法を次に示します (ID の出現回数をカウントします)。

const ids = Array.from(document.querySelectorAll('[id]'))
  .map(v => v.id)
  .reduce((acc, v) => { acc[v] = (acc[v] || 0) + 1; return acc }, {});
console.log(ids);

重複する ID のリストのみが必要な場合は、エントリをフィルタリングできます。

Object.entries(ids)
  .filter(([key, value]) => value > 1)
  .map(([ key, value]) => key)
于 2021-12-16T04:25:53.807 に答える