【问题标题】:Inner HTML result of $.each javascript function$.each javascript 函数的内部 HTML 结果
【发布时间】:2014-08-02 20:04:57
【问题描述】:

我正在尝试使用来自两个单独数组(一个称为 like_list,另一个称为 like_list_name)的选项值和文本进行选择。 '$.each' 连接两个数组并列出选项。当我查看 console.log 时,我可以看到选项看起来不错:

$.each(like_list, function(i, item) {
console.log('<option value="' + like_list[i] + '">' + like_list_name[i] + '</option>');
});

但是当我将输出命名为 'optionlist' 并尝试使用内部 HTML 将 'optionlist' 放入 div 'friendselect' 时,它不起作用:

var optionlist = $.each(like_list, function(i, item) {
'<option value="' + like_list[i] + '">' + like_list_name[i] + '</option>';
});

document.getElementById('friendselect').innerHTML = '[select]' + optionlist + '[/select]';

有没有办法让这个选择框进入'friendselect' div?注意:我使用了“[”,因为侧箭头不起作用。

【问题讨论】:

标签: javascript jquery select innerhtml each


【解决方案1】:

$.each() 不返回其函数中的值,您必须自己将它们添加在一起。

您可以做的最好的事情是在每个循环中将选项添加到选择中,如下所示:

$.each(like_list, function(i, item) {
$("#friendselect").append('<option value="' + like_list[i] + '">' + like_list_name[i] + '</option>');
});

【讨论】:

    【解决方案2】:

    你应该试试map函数:

    var optionlist = $.map(like_list, function(i, item) {
      return '<option value="' + like_list[i] + '">' + like_list_name[i] + '</option>';
    }).join('');
    
    document.getElementById('friendselect').innerHTML = '<select>' + optionlist + '</select>';
    

    【讨论】:

    • 感谢您的帮助,选择框包含所有选项,但值和文本显示“未定义”
    • 它应该是使用 javascript facebook graph api 的 facebook 朋友的选择下拉列表
    猜你喜欢
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2014-07-27
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多