jQuery:查找并替换所有属性

Mar*_*c P 1 jquery dom

我试图替换输入 id 属性的特定部分和 each() 中的标签属性。但是,当我检查渲染时,只有输入 id 的属性更改为 id="something_else_[name]",但标签 for 的属性保持不变,如 for="id_target_[name]"。

我究竟做错了什么?

jQuery:

$(window).bind('load', function() {
    $('.target').each( function() { 
        $(this).html($(this).html().replace('id_target','something_else'));
    });
});
Run Code Online (Sandbox Code Playgroud)

标记:

<div class="target">
<input id="id_target_Bob" type="checkbox">
<label for="id_target_Bob">Target Bob</label>
</div>
Run Code Online (Sandbox Code Playgroud)

结果:

<div class="target">
<input id="something_else_Bob" type="checkbox">
<label for="id_target_Bob">Target Bob</label> <!-- why is this left unchanged? -->
</div>
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 5

.replace只替换搜索字符串的第一个实例。如果要替换所有实例,则必须使用带有g(全局)标志的正则表达式:

.replace(/id_target/g, 'something_else')
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/ExplosionPIlls/cV6pw/