I know that I can run a line of javascript code after the page loads on an iPad with UIWebView (which is what I am using), but I do not know what I could type to go through and remove all of the tags. I also would like to be able to do this to only certain parts of the page e.g. only remove tags within a certain tag.в любом случае, чтобы удалить все <a href=> tags with javascript after the page loads on an iPad?
ответ
You can get all elements by tag name using 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);
}
Update согласно осветленной функциональное требование: вы таким образом хотите заменить ссылку элемент с помощью текстового узла, представляющего собой оригинальное содержание этой ссылки,? Вы можете использовать для этого 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);
}
Мысль я бы разместить функцию удалить(), чтобы дополнить BalusC:
function remove(el){
if(el.parentNode)el.parentNode.removeChild(el);
}
Примечание: Если элемент не имеет родителя, это означает, что он не является в дереве DOM. Это также означает, что он будет удален в следующем запуске GC (сборщик мусора) (пока нет ссылок на него).
Если вы собираетесь делать много манипуляций с dom, возможно, стоит включить jQuery для захвата ваших элементов. Было бы легче удалить предметы. Например.
$(function(){
$('.surrounding_class a').remove();
});
Если вы хотите удалить ссылки, но сохранить их содержимое дисплея (текст, изображения и т.д.), вы можете вставить их childNodes
до ссылки, а затем удалить элементы ссылку:
var removeLinks = function(context) {
var undefined;
if(context === undefined) {
context = document;
}
if(!context) {
return false;
}
var links = context.getElementsByTagName('a'), i, link, children, j, parent;
for(i = 0; i < links.length; i++) {
link = links[i];
parent = link.parentNode;
if(!link.href) {
continue;
}
children = link.childNodes;
for(j = 0; j < children.length; j++) {
parent.insertBefore(children[j], link);
}
parent.removeChild(link);
}
return context;
};
// Use:
removeLinks(document.getElementById('container'));
- 1. Как сообщить <a href..> not refresh the page
- 2. JS/jQuery: Как я могу автоматически обернуть <a href> tags around <img />s with the href being dynamic based on the img src?
- 3. Извлечь все <a href=....jpg"> tags in PHP
- 4. Внутренний href <a tag now refreshes the page
- 5. php + selenium, как получить все <a href...> tags from one page
- 6. Как вернуть div в <a href> with javascript?
- 7. Javascript: Change <a href> to match <img src> multiple times on a page
- 8. Альтернатива <a href="#"> when the anchor tag only triggers a jQuery action without redirecting the user?
- 9. Присоединение <a href></a> в GROUP_CONCAT()
- 10. Javascript - <a href></a> внутри оповещения
- 11. Удалить Activity Views after Fragment Loads
- 12. как разместить массив [i] элементов в <img src=""> и <a href=""> tags
- 13. Иметь <a href=""> tag change another tags class with jquery
- 14. угловой перехватчик маршрут <a href="#"> to 404 page
- 15. <a href="#" adds localhost# to the address bar?
- 16. щелкните <a href using javascript function
- 17. Javascript и `<> ...</>` tags
- 18. Заменить теги [URL] с <a href> tags in Javascript/JQuery
- 19. createElement <a href=variable1>variable2</a>
- 20. Открыть ссылку из <a href> with HtmlUnit Java
- 21. Передача Javascript переменной <a href >
- 22. Отключить <a href> in runtime using Javascript
- 23. <a href=' '> not working properly
- 24. Regex Удалить статьи из заголовка - the, an, a
- 25. Как начать с <a href=" and have an array element here then end with</a>?
- 26. Понимание «javascript: ...;» in <a href=" ">
- 27. (X /) HTML: значение <a href="#">
- 28. <A Href> has a lot of empty space beneath the text
- 29. <a href=...> syntax
- 30. AEM <a href> not working when using JavaScript to concatenate string with currentPage.path
+1 качество answer – galambalazs
Я предполагаю, что автор захочет сохранить содержимое якорных тегов (отображать текст, изображения, что у вас есть) при удалении ссылок. – eyelidlessness
@eye: хм, это имеет смысл. Вместо этого я просто изменил их 'href' на' javascript: void (0) 'и добавлю' style', что делает ссылки похожими на обычный текст (цвет текста по умолчанию, без подчеркивания, курсор по умолчанию). @Matthew: сообщите нам, что вы на самом деле хотите. Может быть, я приведу пример кода. – BalusC