如何:';使用JavaScript for循环更新数组中的值';
我正在创建一个网页,我想在其中隐藏/显示某些div。为此,我创建了一个for循环,将style.display更改为如何:';使用JavaScript for循环更新数组中的值';,javascript,arrays,Javascript,Arrays,我正在创建一个网页,我想在其中隐藏/显示某些div。为此,我创建了一个for循环,将style.display更改为none或block。使用相同的for循环,我同时想要更新一个数组 当我隐藏div时,数组应该是空的。但是当我显示div时,它应该包含下面列出的值[65、59、80、81、56、55] 我的问题是,;数组在循环内部更新,但不在循环外部更新。为什么不在循环外更新阵列 输出应该是一个更新的数组,可以在for循环外部使用。 var array1 = []; function hideRi
none
或block
。使用相同的for循环,我同时想要更新一个数组
当我隐藏div时,数组应该是空的。但是当我显示div时,它应该包含下面列出的值[65、59、80、81、56、55]
我的问题是,;数组在循环内部更新,但不在循环外部更新。为什么不在循环外更新阵列
输出应该是一个更新的数组,可以在for循环外部使用。
var array1 = [];
function hideRightBlock() {
var x = document.getElementById("text_box_right");
if (x.style.display === "none") {
x.style.display = "block";
var array1 = [65, 59, 80, 81, 56, 55];
} else {
x.style.display = "none";
var array1 = [];
}
}
您正在
if
和else
块内声明一个新变量array1
。您在其中声明的这个变量的作用域是它在其中声明的相应块。而是从函数外部修改
array1
:
var array1 = [];
function hideRightBlock() {
var x = document.getElementById("text_box_right");
if (x.style.display === "none") {
x.style.display = "block";
array1 = [65, 59, 80, 81, 56, 55];
} else {
x.style.display = "none";
array1 = [];
}
}
DIFF:array1=[…]代码>而不是var array1=[…]代码>
可运行示例
var数组1=[];
函数hideRightBlock(){
var x=document.getElementById(“文本框右”);
如果(x.style.display==“无”){
x、 style.display=“block”;
数组1=[65,59,80,81,56,55];
}否则{
x、 style.display=“无”;
阵列1=[];
}
//仅用于显示数组值
document.getElementById(“数组值”).innerHTML=JSON.stringify(array1);
}
这是盒子
切换
最好启动变量一次var…
。但我认为这不可能是你的问题。检查元素显示可能有误。最好通过getComputedStyle
检查元素显示,因为style.display
只知道内联样式元素,而不知道外部元素
检查下面的插图
var数组1=[];
函数hideRightBlock(){
var x=document.getElementById(“文本框右”);
var computeStyle=window.getComputedStyle(x);
如果(computeStyle.display==“无”){
x、 style.display=“block”;
var array1=[65,59,80,81,56,55];//更好的array1=[65,59,80,81,56,55];
}否则{
x、 style.display=“无”;
var array1=[];//更好的array1=[];
}
控制台日志(array1);
}
#文本框(右){
显示:无;
}
这是文本框右侧
显示/隐藏
您正在条件块内初始化数组,只需将值赋给itOh,这很有意义!虽然它仍然没有更新数组…我添加了一个可运行的示例-它似乎有效!啊,我这边有个问题!非常感谢你!让我猜猜:您的文本框的id不是text\u-box\u-right
,而是\text\u-box\u-right
?:)很乐意帮忙!哈哈哈,了解我,这可能就是问题所在。但实际上,这是一个不正确放置的卷曲括号。再次感谢!