【发布时间】:2015-04-26 13:08:26
【问题描述】:
刚开始学习 JavaScript;写一些功能比较基础的计算器。我发现需要将多个变量值放在下拉菜单的选项标签中,经过研究,我认为将它们放在一个字符串中最简单,然后使用 split() 函数将它们拆分,但不管我指定的分隔符,它就像没有分隔符一样,并单独拆分每个字符。为什么?
<select name="fuel" onChange="document.scalc.fuel.value=document.scalc.fuel.value.split(',')">
<option value="199x1,50">cu/ft Natural Gas(Via Storage Tank Burner, 65% Efficient)</option>
</select>
【问题讨论】:
-
是的,永远不要将
javascript“缩写”为java。 -
表单元素的
value属性必须是字符串。split()的结果是一个数组。数组的toString()是数组元素重新组合成一个字符串。 -
@Cᴏʀʏ 我在 5 秒前说过。但我注意到问题在于每个角色都被分割了。引用:“
acts as if there is none, and splits each character individually”(就像您传递了一个空字符串一样)。 -
为什么要分配回自身,这会导致更改,然后再次触发该功能?这至少需要一些jQuery。
-
@IsmaelMiguel:这里发生了不止一种不好的做法:内联 onchange 属性中有很多代码,应该移出到它自己的函数中(并且不显眼地附加)。然后是无限变化触发,最后是 value 属性将被分配的东西在
<option>元素中没有对应的值。不了解作者的意图,实在是没法回答这个问题。
标签: javascript