2012-10-19 50 views
0

可能重复:
JavaScript - populate drop down list with array设置选择框的值的JavaScript

我有以下select中,

<select name="supplier" id="supplier"><option></option></select> 

我想用设置此select框的值Javascript。变量Javascript可以是StringArray。这意味着如果它的String那么在select框中将只有一个选项。如果是数组,select框应包含多个options。有人请帮我找到解决方案。在此先感谢....

我已经试过

document.getElementById('supplier').value="Option 1"; 

,但它不工作

+0

你想设置的选项或价值?它们是有区别的。该值是选定的选项。另外,你是否卡住了? –

+0

其选项..... –

+0

你有什么尝试?这看起来像是你要求某人做你的工作,而不是某个不工作的问题。 –

回答

1

我会建议使用jQuery,如果你是做了很多的DOM操作:

$("#supplier").append('<option value=1>My option</option>'); 

没有jQuery:

var select = document.getElementById("supplier"); 
select.options[select.options.length] = new Option('Text 1', 'Value1'); 
+0

只有当他们使用jQuery ... –

+0

@FelixKling现在好吗? –

+0

@FelixKling感谢您的编辑。现在您可以取消投票了。 –

1

尝试此:

http://jsfiddle.net/f4yEt/

function addOptions(input) { 
    var sel = document.getElementById("supplier"); 
    if (typeof input === "string") { 
     input = [input]; 
    } 
    sel.options.length = 0; 
    for (var i = 0; i < input.length; i++) { 
     sel.options[sel.options.length] = new Option(input[i], input[i]); 
     // This APPENDS options 
    } 
} 

input参数可以是字符串或数组(字符串技术上它仅检查,把它变成一个数组为迭代),然后动态地追加一个选项为数组中的每个项目。

1

要做到这一点,您需要创建节点中的节点。

var select = document.getElementById('supplier'); 
var option = document.createElement('option'); 
select.add(option); 

这里是一个更大的教程,需要IE/FF的差异考虑在内: http://www.mredkj.com/tutorials/tutorial005.html

我会考虑使用jQuery的这一点。 Sujathan的回答有jquery。

0
//var varOpt = "test"; 
var varOpt = new Array('test1', 'test2', 'test3'); 
var sel = document.getElementById('supplier'); 

if(typeof varOpt === 'string'){ 
    sel.add(new Option(varOpt , varOpt)); 
} else { 
    for(key in varOpt) { 
     sel.add(new Option(varOpt[key], varOpt[key])); 
    } 
} 
1

jQuery的方法对数组

var array = ["item 1", "item 2", "item 3"]; 
$.each(array, function(i, value) { 
    $('#supplier').append($(document.createElement('option')).attr('value', i + 1).text(value)); 
});​ 

http://jsfiddle.net/NN8KS/

相关问题