JavaScript:在新选项后添加额外属性()

问题描述:

我有一段代码根据其他条件动态地将选项添加到选择字段。它看起来有点像这样:JavaScript:在新选项后添加额外属性()

if (chosen == "a_value") { 
    selbox.options[selbox.options.length] = new Option('text_1','value_1'); 
    selbox.options[selbox.options.length] = new Option('text_2','value_2'); 
    selbox.options[selbox.options.length] = new Option('text_3','value_3'); 
} 

我需要的是添加一个额外的属性到包含特定值的新选项。在这种情况下,该属性将被称为“折扣”,并且该值将是一个整数。稍后,我将读取属性值并根据“选项”字段中的值处理它们。

因此,一旦脚本准备就绪,选项将如下所示:

<option value="value_1" discount="integer">text_1</option> 

有意义吗?

现在我怎么能做到这一点,而不使用JS框架。这只是我需要的代码的一小部分,所以一个框架对于这个项目来说是过分的。

干杯! :-)

,你可以这样做

 

var o1 = new Option("key","value"); 
selbox.options[selbox.options.length] = o1; 
o1.setAttribute("key","value"); 
 
+5

或只需添加这一行: selbox.options [selbox.options.length] .setAttribute( “折扣”, “整数”); – 2011-03-31 11:29:27

+0

谢谢你们,它的确很容易。 – 2011-03-31 11:33:23

可以合并成一行代码如下:

(selbox.options[selbox.options.length] = new Option("key","value")).setAttribute("key","value"); 

请注意,如果你只有一个属性添加这只会工作,否则你将需要一个临时变量。

我知道这是旧的,但我遇到了这个问题,当我忘了它是add而不是push今天。

正确的方法是使用select.options.add

var opt = document.createElement('option'); 
opt.value = 'hello'; 
opt.text = 'world'; 
opt.setAttribute('data-discount', 'integer'); 
selbox.options.add(opt);