Как удалить тег с помощью JavaScript - PullRequest
0 голосов
/ 07 января 2019

чего я хочу добиться - это удалить HTML-тег с помощью JavaScript.

У меня есть следующий тег HTML:

<a class="fc-list-heading-main" data-goto="{"date":"2019-01-05","type":"day"}">5.Januar 2019</a>

Чего я хочу добиться, так это избавиться от ссылки. Это должно выглядеть примерно так:

<class="fc-list-heading-main">5.Januar 2019</a>

Это будет мое регулярное выражение JavaScript:

<script type="text/javascript">

var regex = /(<a class=\"fc-list-heading-main\" data-goto=\"\{\"date\":\"[0-9]*-[0-9]*-[0-9]*\",\"[a-z]*\":\"[a-z]*\"}\">[0-9]*.[A-Z]*[a-z]*\w.[0-9]*<\/a>)/g;
s = s.replace(regex, '<p>Test</p>');

</script>

Но как-то не так, как ожидалось. Может кто знает, что тут не так?

Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Для удаления тега-атрибута:

var content = document.querySelector(".fc-list-heading-main");
content.removeAttribute("data-goto");

Для замены элемента:

var content = document.querySelector(".fc-list-heading-main");
var node = content.parentNode;
var a = document.createElement('a');
a.className = 'fc-list-heading-main';
a.innerHTML = content.innerHTML;
node.replaceChild(a, content);
<a class="fc-list-heading-main" data-goto="{"date":"2019-01-05","type":"day"}">5.Januar 2019</a>
0 голосов
/ 08 января 2019

Мне очень жаль, и я .... Я нашел еще более простое решение, чем манипулирование чем-либо.

Хотя, я посмотрел спецификацию FullCalendar, сначала ничего не смог найти.

Но теперь я увидел это в своем коде:

navLinks: true,
editable: false,...

Настройка navLinks: false сразу решил проблему.

Мне очень жаль, что беспокою вас!

0 голосов
/ 08 января 2019

Причиной того, что ваше регулярное выражение не работает, является то, что HTML интерпретируется браузером при загрузке и создает объектную модель документа, которая представляет собой объектное представление, вся логика в браузере влияет на эту модель, и, таким образом, ваши строковые манипуляции не влияют на существующей страницы, если вы не сделали этого до загрузки и интерпретации страницы.

Если вы знаете, какой класс вам нужен, вы можете выбрать элемент, создать новый элемент, который не является ссылкой, и установить его текст из старого элемента, добавить новый элемент в dom и удалить старый элемент.

Этот фрагмент должен делать то, что вы хотите.

let class = 'fc-list-heading-main';

let old_element = document.getElementsByClassName(class);

let new_element = document.createElement("div");

new_element.innerHTML = element.innerHTML;

new_element.classList.add(class);

document.body.insertBefore(new_element, old_element);

old_element.parentNode.removeChild(old_element);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...