obj.childNodes
遍历其nodeType=3
然后将想内容里的table设成红色要怎么弄呢??
node.nodeValue=node.nodeValue.replace(/\btable\b/g,"<span style='color:red'>$1</span>");//这样当然不行,到底怎么弄呢?才能将这个节点里的颜色改变呢?
或者怎么操作其父节点比较方便?
遍历其nodeType=3
然后将想内容里的table设成红色要怎么弄呢??
node.nodeValue=node.nodeValue.replace(/\btable\b/g,"<span style='color:red'>$1</span>");//这样当然不行,到底怎么弄呢?才能将这个节点里的颜色改变呢?
或者怎么操作其父节点比较方便?
别个先不说 没有捕获哪来$1?
\b(table)\b
现在的情况是这句
node.nodeValue=node.nodeValue.replace(/\btable\b/g," <span style='color:red'>$1 </span>");//使用后,不会应用样式 ,因为在文本节点里<span会直接显示出来,
node.parentNode.replaceChild(newNode, node);
var span = document.createElement("span");
span.innerHTML = html;
return span;
}
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);
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>