我有一个名为inputType
的全局var,它是一个冗长的对象:
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
,然后在另一段代码中使用修改后的对象?
对象很难!
感谢。
答案 0 :(得分:1)
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');
}
请阅读here以了解有关.replace()
答案 1 :(得分:0)
试试这个:
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'