通过 javascript 函数添加选项不起作用
我有一个 JavaScript 函数。 该函数应该通过添加选项来填充 html 选择框。
Argument passed is, for example, [['val1','txt1'],['val2','txt2']]
我预计它会生成如下所示的 html:
<select id='element_id'>
<option value='val1'>txt1</option>
<option value='val2'>txt2</option>
</select>
<script>
function popu_select(x) {
for (i in x) {
$('#element_id').append($(document.createElement("option")).attr("value", "i[0]").text("i[1]"));
}
</script>
但它不会填充选择框。 我在这里可能做错了什么?
问候, 维内特
I have a javascript function.
This function is supposed to populate a html select-box by adding options.
Argument passed is, for example, [['val1','txt1'],['val2','txt2']]
I expected that it would generate the html as under:
<select id='element_id'>
<option value='val1'>txt1</option>
<option value='val2'>txt2</option>
</select>
<script>
function popu_select(x) {
for (i in x) {
$('#element_id').append($(document.createElement("option")).attr("value", "i[0]").text("i[1]"));
}
</script>
But it is not populating the select-box.
What I may be doing wrong here?
Regards,
Vineet
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
至少,您需要获取数组的项(i 只是索引),并在访问变量时删除引号。试试这个:
At least, you need to get the item of the array (i is only the index), and remove quotes when accessing the variables. Try this:
您应该使用 JSON 来传递参数:
You should use JSON to pass arguments in:
我已经在这里更新了您的代码,以便它可以工作。
http://jsfiddle.net/52nRL/
使用 jQuery
$.each
函数。I have updated your code here so that it works.
http://jsfiddle.net/52nRL/
using the jQuery
$.each
function.不是 jQuery,但这个 示例 正是您想要的。它甚至包括一个从数组添加选项的示例,就像您在这里所做的那样。
Not jQuery, but this example does exactly what you want. It even includes an example for adding options from an array like you're doing here.