2016-12-14 109 views
-3

我基本上有这样的硬编码: -HTML选择标签太大

<select id="nr"> 
 
       <option value="0">0</option> 
 
       <option value="1">1</option> 
 
       <option value="2">2</option> 
 
       <option value="3">3</option> 
 
       <option value="4">4</option> 
 
       <option value="5">5</option> 
 
       </select>

它应该从阵列选择一个值,是有办法,我可以做一个选择没有硬编码所有这些值?最好创建一个与我的数组的长度在JavaScript或HTML循环?

+2

什么的这点?你不能只是输入数字吗?这是一种坏习惯? –

+0

@JoshuaBakker这是一个愚蠢的任务,我的老师让我做,我不知道如何。他基本上希望限制用户选择一个不存在于数组中的索引,但他也希望让用户选择数组中存在的索引。 –

+0

嗯,我不知道他为什么会告诉你这么做,选择带值的选项并显示为数字是没用的。 –

回答

1

希望这可以帮助你!

function addOptionValue(value) { 
 
    var option = document.createElement('option'); 
 
    option.setAttribute('value', value); 
 
    option.innerHTML = value; 
 
    selectEl.appendChild(option); 
 
} 
 

 
var optionsArray = [1, 2, 3, 4, 5], 
 
selectEl = document.getElementById('nr'); 
 

 
for (i in optionsArray) { 
 
    addOptionValue(optionsArray[i]); 
 
}
<select id="nr"></select>

0

jQuery的

$(function(){ 
    for (i=1;i<=5;i++){ 
     $("#nr").append($('<option></option>').val(i).html(i)) 
    } 
}); 

的Javascript

<script> 
for(var i=1; i<=5; i++){ 
    var option = document.createElement("option"); 
    option.value = i; 
    option.text = i; 
    document.getElementById('nr').appendChild(option); 
} 
/<script> 

Demo

+0

是否有可能在JavaScript中做类似的事情? –

+0

@StanVanHoorn更新了答案。 – Imad

0

这样的事情?

var arr = [0,1,2,3,4,5]; 
 
var select_elem = document.getElementById("nr"); 
 
for (var i = 0; i < arr.length; i++){ 
 
    var option = document.createElement("option"); 
 
    option.value = arr[i]; 
 
    option.text = arr[i]; 
 
    select_elem.appendChild(option) 
 
}
<select id="nr">  
 
</select>

+0

这就是我正在寻找,但你可以提供整个文件,因为我试图执行,但它不适用于我:p –

+0

你是什么意思的“整个文件”?代码在代码段中工作 –

+0

如果你需要jsfiddle,它在这里https://jsfiddle.net/ytqnmfjp/ –