我有以下javascript代码:
var contents;
window.onload = function(){
contents = document.getElementsByTagName('body');
console.log(contents);
};
它获取身体的内容。现在,我想将*
替换为<span>*</span>
。我该怎么做呢?
我想使用Javascript而不是jQuery。
答案 0 :(得分:3)
为了不替换整个HTML(非常糟糕的态度),我们可以使用元素进行快速操作:
var specialTags = ["head", "script", "style"].join("|"),
re = new RegExp("^(?:" + specialTags + ")$", "i");
for (var els = document.getElementsByTagName("*"), i = els.length; i--;) {
var el = els[i];
if (re.test(el.tagName))
continue;
for (var j = 0, childs = el.childNodes, lj = childs.length; j < lj; j++) {
var child = childs[j];
if (child.nodeType === 3 && child.nodeValue.indexOf("*") > -1) {
var segments = child.nodeValue.split("*");
for (var k = 0, lk = segments.length; k < lk; k++) {
el.insertBefore(document.createTextNode(segments[k]), child);
if (k < lk - 1) {
var span = document.createElement("span");
span.className = "red";
span.appendChild(document.createTextNode("*"));
el.insertBefore(span, child);
}
}
el.removeChild(child);
}
}
}