如何使用JavaScript删除标签

时间:2019-01-07 20:42:48

标签: javascript regex

我想要实现的是使用JavaScript删除HTML标记。

我有以下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 :(得分:1)

要删除标签属性:

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>

答案 1 :(得分:0)

您的正则表达式不起作用的原因是html在浏览器加载时解释为html,并建立了一个文档对象模型,该对象模型是对象的表示形式,浏览器中的所有逻辑都会影响此模型,因此您的字符串操作不会影响现有页面,除非您在加载和解释页面之前进行了此操作。

如果知道所需的类,则可以选择该元素,创建一个不是链接的新元素,并从旧元素中设置其文本,将新元素附加到dom,然后删除旧元素。 / p>

此代码段应执行您想要的操作。

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);

答案 2 :(得分:0)

我真的很抱歉,我是...。 我找到了比操作某些方法更简单的解决方案。

尽管我研究了FullCalendar的规格,但一开始我什么都找不到。

但是现在我在代码中看到了这一点:

navLinks: true,
editable: false,...

设置navLinks:false立即解决了该问题。

很抱歉打扰你了!