这是我第一次写stackoverflow,我有以下问题:我有一个名为"components“的数组,它的元素是对象。每个对象都有不同的属性,但是当我为组件的给定属性赋值时,相同的值被赋值给components1。我尝试了不同的方法来解决这个问题,但都无济于事。代码如下:
function update(x)
{
component = Number(x.id.split("_")[1]) - 1;
property = x.id.split("_")[0];
value = Number(x.value);
components[component][property] = value;
return
}
例如,在以下HTML代码中:
<tr>
<th>
Viscosity at 50 °C (cSt)
</th>
<td>
<center>
<input type="text"
onchange="update(this);"
class="property"
id="viscosity_1">
</center>
</td>
<td class="last" >
<center>
<input type="text"
onchange="update(this);"
class="property"
id="viscosity_2">
</center>
</td>
</tr>当用户分配属性"viscosity_1“时,js函数将id字符串划分为”粘度“和"1",并且应该将用户插入的值分配给components.viscosity,而不影响组件1。粘度。实际上,如果用户更改了"viscosity_1“和"viscosity_2”中的任何一个,components.viscosity和Components1粘度都会更新。
发布于 2020-11-20 19:27:12
更多细节:在js代码中,components数组的定义如下:
var ncomp = 2;
var components = Array(ncomp).fill({}); components数组已由函数initialize()初始化,该函数在加载页面时执行:
function initialize()
{
inputList = Array.from(document.getElementsByClassName("property"));
var len = inputList.length;
var property
var index
for (i=0; i<len; i++)
{
property = inputList[i].id.split("_")[0];
index = Number(inputList[i].id.split("_")[1]) - 1;
components[index][property] = NaN;
}
return
}
https://stackoverflow.com/questions/64903999
复制相似问题