我必须将表单中的id值更改为所有输入和选择字段。
$(value).find('input, select').each(function() {
var id = $(this).attr('id');
var idArray = id.split("_");
var newId = id.replace(idArray[5], 2);
newId = id.replace(idArray[7], (index + 1));
console.log(newId);
$(this).attr('id', newId);
});
值是表格。控制台返回idArray [5]替换为(index +1)...
任何想法,谢谢
答案 0 :(得分:0)
因此,您致电String.prototype.replace
,因为id
实际上是string
。
作为第二个参数,您传递的是int
:
var newId = id.replace(idArray[5], 2);
这将用数字2
替换该字符串中的任何内容,而不是数组的第二个索引。
用数字替换部件是预期的行为,这是实际发生的事情:
替换等于idArray[5]
的{{1}}正在用1
替换它找到的第一个1
字符。
另一个替换是使用相同的原始字符串(2
而非id
)并将相同的newId
字符替换为1
的值。
在这种情况下的解决方案是操纵数组,然后join
将其重新转换为字符串:
(index + 1)