如何有条件地修改全局对象的内容



我有一个名为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' 

相关内容

  • 没有找到相关文章

最新更新