Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中设置输入范围的值_Javascript - Fatal编程技术网

Javascript 从数组中设置输入范围的值

Javascript 从数组中设置输入范围的值,javascript,Javascript,我有一个范围滑块,通常是最小值、最大值和值。Min和max配合良好,将使用存储在阵列中的数据。尝试从数组中提取“值”,但它不起作用。我试过: thumb=[]; var thumb[0]=72; var thumb[0]="72"; // As a manual test var x=thumb[0]; var x=thumb[0].toString(); document.getElementById('slider').value=thumb[0]

我有一个范围滑块,通常是最小值、最大值和值。Min和max配合良好,将使用存储在阵列中的数据。尝试从数组中提取“值”,但它不起作用。我试过:

  thumb=[];
  var thumb[0]=72;
  var thumb[0]="72"; // As a manual test
  var x=thumb[0];
  var x=thumb[0].toString();
  document.getElementById('slider').value=thumb[0];
  document.getElementById('slider').value=thumb[0].value;
  document.getElementById('slider').value=x;
  document.getElementById('slider').value='"'+thumb[0].value+'"';
  document.getElementById('slider').value=''+thumb[0].value;
  document.getElementById('slider').value=thumb[0].toString();
  document.getElementById('slider').value=Number(thumb[0]);
  document.getElementById('slider').setAttribute('value',thumb[0]);
  document.getElementById('slider').setArttribute('value',thumb[0].value);
  document.getElementById('slider').setAttribute('value',x);
事实上,你能想到的每一种方法

如果我使用document(getElementById).value=“72”(即HTML中的硬编码)可以很好地工作,但无法从数组中获取值。(拇指一直跳到最小值,有时跳到最大值:随机)

虽然我在这里展示了thumb[0],但数组有几个元素,所有元素都是根据滑块最初创建的值设置的。但当我尝试重新加载时

(loop)
function saveValues(){
min[line]=document.getElementById('slider').min;
thumb[line]=document.getElementById('slider').value;
max[line]=document.getElementById('slider').max;
createElement('option'); // Abbreviated
line++;
}
(end loop)

// The above createElement
<select id="opt" onchange="setSlider()">
<option>Cap1</option>
<option>Cap2</option> // Adds an entry each time saveValues() is called
</select>

function setSlider(){
var opt= getElementById('opt').selectedIndex;
document.getElementById('slider').min=min[opt];   // OK
document.getElementById('slider').max=max[opt];   // OK
document.getElementById('slider').value=thumb[opt]; // Will not set thumb/value
}

<input type="range" min="0" value="0" max="60" id="slider">
<input type="button" onclick="saveValues()" value="Save settings">
(循环)
函数saveValues(){
min[line]=document.getElementById('slider').min;
thumb[line]=document.getElementById('slider')。值;
max[line]=document.getElementById('slider').max;
createElement('option');//缩写
line++;
}
(结束循环)
//上面的createElement
第1章
Cap2//每次调用saveValues()时都会添加一个条目
函数setSlider(){
var opt=getElementById('opt')。selectedIndex;
document.getElementById('slider').min=min[opt];//确定
document.getElementById('slider')。max=max[opt];//确定
document.getElementById('slider')。value=thumb[opt];//不会设置thumb/value
}
更奇怪的是,当我选择选项0时,它似乎起作用了。。。但所有其他人都拒绝正确设置。(我知道最小值和最大值是在作为move thumb打印到控制台时设置的)我将代码缩写为大约600行

  var thumb[0]=72;
  var thumb[0]="72"; // As a manual test
  

从这里删除var。你不改变数组,而是声明其他的东西。答案一如既往地盯着我的脸!我认为“值”介于最小值和最大值之间,这就是它应该在代码中的位置。错了!您必须首先设置“最小”和“最大”,以便它知道必须使用的范围,然后它可以计算拇指相对于其他拇指的位置


只要我碰巧在另一个网站上看到这个。。。现在看来很明显

只需在第一行声明一次变量