我希望Javascript将页面上的所有文本更改为特定字符串。例如,如果我想将每个单词设置为“Hello”:
在:
Hey there, how are you?
后:
Hello Hello Hello Hello Hello
如何做到这一点?它会对整个页面执行此操作,因此需要保留HTML标记,只需更改文本内容。
此代码必须在页面加载后执行。
答案 0 :(得分:3)
function malkovich(node) {
if(node.nodeType === 1)
return [].forEach.call(node.childNodes, malkovich);
if(node.nodeType === 3)
node.textContent = node.textContent
.replace(/\b[A-Z]\w+/g, "Malkovich")
.replace(/\b[a-z]\w+/g, "malkovich")
}

<h1>Hi, there!</h1>
<p>Some <b>more</b> text...</p>
<p>"Gallia est omnis divisa in partes tres, quarum <u>unam</u> incolunt <i>Belgae</i>, <u>aliam</u> <i>Aquitani</i>, <u>tertiam</u> qui ipsorum lingua <i>Celtae</i>, nostra <i>Galli</i> appellantur". </p>
<button onclick="malkovich(document.body)">malkovich</button>
&#13;
答案 1 :(得分:0)
将所有内容都转换为字符串,然后使用.replace
方法
"Hey there, how are you?".replace(/[^\s]+/g, "Hello");
// replaces any non-space sequence with over 1 character
// outputs "Hello Hello Hello Hello Hello"
您还可以积极匹配字符[a-zA-Z]+
,只是搞乱它