我尝试使用正则表达式来获取没有html标签的所有单词 这样做的目的是标记所有带有span标签的单词,以便在鼠标结束时能够获取单词,但保留html初始标签
例如此代码
<p>hello i'm <b>jesus</b></p>
应该成为
<p><span>hello</span> <span>i'm</span><b><span>jesus<span></b></p>
所以,对我来说,第一步是获取所有单词,不使用html标签,然后将其替换为span
这是我在javascript中的正则表达式 ([^ \ r \ n \ t \ f&gt;&lt; /] +(?!&gt;))
但我对某些标签有问题,比如
实例here
最后,当我的正则表达式没问题时,我可以将所有单词替换为 $(this).html($(this).html()。replace(reg,“$ 1”));
谢谢你的帮助 也许有另一种方法可以做到这一点......答案 0 :(得分:0)
使用
.split()
拆分元素的textContent
。Array#forEach
在.split
和appendChild
之后迭代数组以追加元素。
var ELEMENT = document.getElementsByTagName('p')[0];
var text = ELEMENT.textContent;
ELEMENT.innerHTML = '';
text.split(' ').forEach(function(elem) {
var span = document.createElement('span');
span.innerHTML = elem;
ELEMENT.appendChild(span);
});
span {
margin-left: 10px;
}
<p>hello i'm <b>jesus</b>
</p>