jQuery在html var中替换全局整数

jQuery replace integer globally in html var

本文关键字:替换 全局 整数 var html jQuery      更新时间:2023-09-26

我试图用regex在我的HTML字符串中全局替换一个数字,但它只在不附加到属性时替换数字。

。我想在全球范围内替换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

我想我需要修改我的正则表达式a不知何故?

您可以在RegExp处使用.each(), g标志来替换name属性包含"field_name"的元素的.outerHTML

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">