我有一段代码,可以根据其他条件动态地向选择字段添加选项。它看起来有点像这样:
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框架,我如何做到这一点。这只是我需要的这一小部分代码,所以对于这个项目来说,一个框架就太夸张了。
干杯!:-)
发布于 2015-05-16 08:17:42
我知道这很古老,但是当我今天忘记了它是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);
发布于 2012-07-16 23:24:32
您可以将其合并到一行代码中:
(selbox.options[selbox.options.length] = new Option("key","value")).setAttribute("key","value");
请注意,只有当您只需要添加一个属性时,这才能起作用,否则您将需要一个临时变量。
https://stackoverflow.com/questions/5499019
复制相似问题