js 批量替换字符串

JavaScript08

js 批量替换字符串,第1张

给你个笨方法

var imgDom = document.getElementsByTagName('img'),

    i = 0,

    n

while(n = imgDom[i]){

    var src = n.getAttribute('src')

    n.src = 'aaa.com' + src

    i++

}

imgDom = null, n = null

id在同一个页面里是唯一的,不能在多个元素上用一样的id。

你目前的批量替换功能用遍历来做会比较好。

遍历所有的td,然后分别修改内容。

或者用jquery会更加简单,用jq的话,给td设置class,然后jq获取class然后修改内容

我写了代码如下, 测试可行, 供参考:

//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWord

function 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('中国', '美国')