我想要实现的是使用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>
但是不知何故,它无法正常工作。 也许有人知道这是怎么回事?
非常感谢您。
答案 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立即解决了该问题。
很抱歉打扰你了!