<input type="text" value="a1" />
<input type="text" value="a2" />
<input type="text" value="a3" />
<input type="text" value="a4" />
<input type="text" value="a5" />
<script type="text/javascript">
for(var i=0 i<document.getElementsByTagName('input').length i++){
alert(document.getElementsByTagName('input')[i].value)
}
</script>
</body>
<!DOCTYPE HTML><html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript">
var array = []
onload = function ()
{
var tags = document.body.getElementsByTagName ('*')
for ( var i = 0 i < tags.length i++)
{
array.push (getText (tags[i]))
}
console.log (array)
}
var getText = function (dom)
{
var index = 0, html = dom.innerHTML
while (dom.children.length && index < dom.children.length)
{
var chtml = dom.children[index].outerHTML
html = dom.innerHTML.replace(chtml, '')
index++
}
return "<font>" + html + "</font>"
}
</script>
</head>
<body>
<p>
ths is p<a href="">this is a</a>wyz
</p>
<i>this is i</i>
<b>this is b</b>
</body>
</html>
我写了代码如下, 测试可行, 供参考:
//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWordfunction replaceBodyText(searchWord, replaceWord){
var reg = new RegExp(searchWord, 'g')
function replaceNode(node){
node.childNodes.forEach(function(v){
if(v.nodeName === 'SCRIPT')
return //排除<script>标签
if(!v.hasChildNodes()){
if(reg.test(v.textContent))
v.textContent = v.textContent.replace(reg, replaceWord)
return
}
replaceNode(v)
})
}
replaceNode(document.body)
}
//绑定一个事件测试用, 点击这个按钮后才会执行
document.querySelector('#testBtn').addEventListener('click', function(){
replaceBodyText('中国', '美国')
})
//实际使用中直接调用函数即可:
//以下语句表示将所有文本节点中的"中国"替换为"美国:
//replaceBodyText('中国', '美国')