我有一个名为inputType
的全局变量,它是一个冗长的对象:
inputType = {
part1: 'string',
part2: 'string2',
...
part100:'last string'
}
在一段单独的代码中,我有一些接收数值的输入字段。我想更改var
对象字符串的某些部分:
<input id='input1'>First input
法典:
$(document).ready(function(){
$('#input1').blur(function (){
var inp = parseInt($('#input1').val(), 10);
if (inp <10) {
inputType.part2.replace(/string2/,'some other string');
}
});
});
// Then I call this modified inputType.part2 object in another function
满足条件时,我似乎无法影响字符串更改?当我尝试在另一个脚本中调用此特定对象属性时,不会执行字符串更改。当我尝试这个时,我也无法在 DOM 检查器上看到此更改。但是当我在控制台上尝试时,此语法将执行replace
功能。
当满足条件时,如何替换或修改inputType.part2
,然后在另一段代码中使用修改后的对象?
物体很坚硬!
谢谢。
首先Name
你的对象。然后尝试使用该名称访问它。
var xObj = {
part1: 'string',
part2: 'string2',
...
part100:'last string'
}
.....
if (inp <10) {
xObj.part2.replace(/string2/,'some other string');
}
编辑:
.replace()
不会修改源字符串。 我们必须将.replace()
的结果分配回源才能完成修改。
概念演示
你的代码应该是这样的,
if (inp <10) {
xObj.part2 = xObj.part2.replace(/string2/,'some other string');
}
请阅读此处以了解有关.replace()
的更多信息
试试这个:
window.InputVal = {
part1: 'string',
part2: 'string2',
...
part100:'last string'
}
.....
if (inp <10) {
window.InputVal.part2 = window.InputVal.part2.replace(/string2/,'some other string');
}
只需使用新值"更新"window.InputVal.part2
即可。仅放置.replace
不会覆盖旧值。
例如:
// define "x"
window.InputVal.x = 1;
// replace value
window.InputVal.x.toString().replace(/1/,'2');
// show
console.log(window.InputVal.x)
// will print 1
// but..if you do:
window.InputVal.x = window.InputVal.x.toString().replace(/1/,'2');
// will print '2'