У меня есть несколько тысяч элементов svg rect в качестве узлов и элементов пути svg в качестве ссылок и многих других таких элементов в пользовательском интерфейсе. Из-за некоторых действий пользователя некоторым элементам присваивается определенный класс. Мне нужно найти имя тега элементов, имеющих конкретный класс.
В приведенном ниже коде мне нужно найти точное имя тега элемента, который имеет класс xyz, вместо имени их класса или других значений атрибутов.
d3.selectAll(".xyz").each(function(){
console.info(":::: " + d3.select(this).attr("class"));
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg>
<rect class='xyz' width = "50" height = "50" fill='teal'></rect>
<line class='xyz' x1 = "0" y1 = "0" x2 = "200" y2 = "200" style = "stroke:rgb(255,0,0);stroke-width:2" />
<svg>На самом деле мне нужно выбрать все элементы, относящиеся к определенному классу, и выполнять операции в соответствии с именем тега, а не выбирать в соответствии с тегом. Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать название тэга.
Вот демонстрация с использованием вашего фрагмента:
d3.selectAll(".xyz").each(function() {
console.info(d3.select(this).node().tagName);
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg>
<rect class='xyz' width = "50" height = "50" fill='teal'></rect>
<line class='xyz' x1 = "0" y1 = "0" x2 = "200" y2 = "200" style = "stroke:rgb(255,0,0);stroke-width:2" />
<svg>Обратите внимание на тот факт, что вы должны вызывать tagName для самого элемента DOM, а не для выбора D3 (отсюда и node()). Следовательно, вы можете использовать просто this:
d3.selectAll(".xyz").each(function() {
console.info(this.tagName);
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg>
<rect class='xyz' width = "50" height = "50" fill='teal'></rect>
<line class='xyz' x1 = "0" y1 = "0" x2 = "200" y2 = "200" style = "stroke:rgb(255,0,0);stroke-width:2" />
<svg>
Вы можете использовать
d3.selectAll('rect.xyz')для выбораrectс классомxyz. Подробнее здесь d3indepth.com/selections