我有select
框,
<select name="supplier" id="supplier"><option></option></select>
我想使用select
设置此Javascript
框的值。 Javascript
变量可以是String
或Array
。这意味着如果它是String
,则select
框中只有一个选项。如果它是一个数组,select
框应该包含多个options
。有人请帮我找到解决方案。提前谢谢....
我试过了
document.getElementById('supplier').value="Option 1";
但它不起作用
答案 0 :(得分:1)
如果您正在进行大量的DOM操作,我建议使用jQuery:
$("#supplier").append('<option value=1>My option</option>');
没有jQuery:
var select = document.getElementById("supplier");
select.options[select.options.length] = new Option('Text 1', 'Value1');
答案 1 :(得分:1)
试试这个:
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
参数可以是字符串或数组(从技术上讲,它只检查字符串,将其转换为数组进行迭代),然后为数组中的每个项动态附加一个选项。
答案 2 :(得分:1)
为此,您需要在。
中创建节点var select = document.getElementById('supplier');
var option = document.createElement('option');
select.add(option);
这是一个考虑IE / FF差异的更大教程: http://www.mredkj.com/tutorials/tutorial005.html
<强> BUT 强>
我会考虑使用jquery。 Sujathan的回答是jquery。
答案 3 :(得分: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));
});
答案 4 :(得分: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]));
}
}