Вы можете получить все элементы по имени тега, используя document.getElementsByTagName()
. Все ссылки имеют имя тега a
. Вы можете визуально удалить их, установив стиль display
на none
.
var elements = document.getElementsByTagName('a');
for (var i = 0; i < elements.length; i++) {
elements[i].style.display = 'none';
}
Чтобы удалить элементы определенного тега внутри определенного тега, просто вызовите getElementsByTagName()
для соответствующего элемента. Предположим, что вы хотите скрыть все ссылки только внутри <li>
:
var listitems = document.getElementsByTagName('li');
for (var i = 0; i < listitems.length; i++) {
var anchors = listitems[i].getElementsByTagName('a');
for (var j = 0; j < anchors.length; j++) {
anchors[j].style.display = 'none';
}
}
element.parentNode.removeChild(element)
также хорош, но он плохо работает в стандартном цикле for
. Вам нужно зациклить в обратном направлении :
var elements = document.getElementsByTagName('a');
for (var i = elements.length; i-- > 0;) {
var element = elements[i];
element.parentNode.removeChild(element);
}
Обновление согласно уточненному функциональному требованию: таким образом, вы хотите заменить элемент ссылки текстовым узлом, представляющим исходное содержимое ссылки? Для этого вы можете использовать Node.replaceChild()
. Вот начальный пример:
var elements = document.getElementsByTagName('a');
for (var i = elements.length; i-- > 0;) {
var element = elements[i];
var text = document.createTextNode(element.firstChild.nodeValue);
element.parentNode.replaceChild(text, element);
}