8.7w+
社区成员
<script>
window.onload = function() {
var pn = document.getElementById('container').childNodes;
i=pn.length-1,
df = document.createElement('span');
for(; i >= 0; i=i-1) {
if(pn[i].nodeType === 3) {
df.innerHTML = pn[i].nodeValue.replace(/(\btable\b)/g," <span style='color:red'>$1 </span>");
pn[i].parentNode.replaceChild(df, pn[i]);
}
}
};
</script>
<p id="container">I am the table, would you like some cup of tea?</p>
function toTextNode(str) {
return document.createTextNode(str);
}
function toSpan(str) {
var span = document.createElement("span");
span.style.color = 'red';
span.appendChild(toTextNode(str));
return span;
}
var node = .....; // 文本节点
var reg = /\btable\b/ig;
var arr = [[node.nodeValue.split(reg), node.nodeValue.match(reg)], [toTextNode, toSpan]];
for (var i=0, len=arr[0][0].length+arr[0][1].length; i<len; i++) {
var newNode = arr[1][i%2](arr[0][i%2].shift());
node.parentNode.insertBefore(newNode, node);
}
node.parentNode.removeChild(node);
function toElement(html) {
var span = document.createElement("span");
span.innerHTML = html;
return span;
}
var newNode = toElement(node.nodeValue.replace(/\btable\b/ig, '<span
style="color:red;">$&</span>'))
node.parentNode.replaceChild(newNode, node);
node.nodeValue=node.nodeValue.replace(/\btable\b/g," <span style='color:red'>$1 </span>");//使用后,不会应用样式 ,因为在文本节点里<span会直接显示出来,
别个先不说 没有捕获哪来$1?
\b(table)\b