我正在尝试通过regex在我的HTML字符串中全局替换一个数字,但它只会在未附加到属性时替换该数字。
e.g。我想在全球范围内替换123号码。此示例中的问题是仅更改了值中的数字,而不是括号之间的数字。
var oldId = 123;
var newId = 1234;
<input type="hidden" name="field_name" value="123">
<input type="radio" name="field_name[123]" class="id_123">
$('.settings').replace(/oldId/g, newId);
当前结果
<input type="hidden" name="field_name" value="1234"> <-- changed
<input type="radio" name="field_name[123]" class="id_123"> <--- not changed
我想我需要以某种方式修改我的正则表达式?
答案 0 :(得分:1)
您可以在.each()
使用g
,RegExp
标记来替换.outerHTML
属性包含name
的元素"field_name"
var oldId = 123;
var newId = 1234;
$("input[name*=field_name]").each(function(i, el) {
el.outerHTML = el.outerHTML.replace(new RegExp(oldId, "g"), newId)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="hidden" name="field_name" value="123">
<input type="radio" name="field_name[123]" class="id_123">