jQuery在html var

时间:2016-06-29 14:55:18

标签: javascript jquery regex replace

我正在尝试通过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

我想我需要以某种方式修改我的正则表达式?

1 个答案:

答案 0 :(得分:1)

您可以在.each()使用gRegExp标记来替换.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">