通过 javascript 函数添加选项不起作用

发布于 2024-12-18 12:58:33 字数 590 浏览 0 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

莫多说 2024-12-25 12:58:33

至少,您需要获取数组的项(i 只是索引),并在访问变量时删除引号。试试这个:

  function popu_select(x) {
    for (i in x) {
      var item = x[i]
      $('#element_id').append($(document.createElement("option")).attr("value", item[0]).text(item[1]));
    }

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:

  function popu_select(x) {
    for (i in x) {
      var item = x[i]
      $('#element_id').append($(document.createElement("option")).attr("value", item[0]).text(item[1]));
    }
无法言说的痛 2024-12-25 12:58:33

您应该使用 JSON 来传递参数:

var args = [{value:1, text:'one'}, {value:2, text:'two'}];

$.each(para, function(i, option){ 
  $('#element_id').append("<option value='" + option.value + "'>" + option.text + "</option>");
});

You should use JSON to pass arguments in:

var args = [{value:1, text:'one'}, {value:2, text:'two'}];

$.each(para, function(i, option){ 
  $('#element_id').append("<option value='" + option.value + "'>" + option.text + "</option>");
});
樱花落人离去 2024-12-25 12:58:33

我已经在这里更新了您的代码,以便它可以工作。

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.

入怼 2024-12-25 12:58:33

不是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文