Я использую cloneNode(true)
для создания копий элементов DOM (например, div, содержащий несколько диапазонов, которые содержат текст и могут быть вложенными). Я хочу удалить все атрибуты id из копий, чтобы document.getElementById
нашел исходный элемент.
Как мне это сделать? node.setAttribute('id','');
, кажется, работает, но мне интересно, удаляет ли это его или просто устанавливает его id в строку нулевой длины (что по-прежнему означает, что у меня есть множество элементов с одинаковым идентификатором).
Также мне интересно, как я могу рекурсивно стереть идентификаторы, чтобы я мог гарантировать, что все идентификаторы в копиях будут стерты, чтобы я мог безопасно продолжать ссылаться на элементы (оригиналы, конечно) по идентификатору. Пока у меня есть это:
function recursive_erase_id(node) {
node.setAttribute('id','');
var children = node.childNodes;
if (children) recursive_erase(children);
}