Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 追加选项标记以使用JQuery从数组中选择标记_Javascript_Jquery_Html - Fatal编程技术网

Javascript 追加选项标记以使用JQuery从数组中选择标记

Javascript 追加选项标记以使用JQuery从数组中选择标记,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用JQuery从数组中追加内容,在html中创建一个选项下拉列表 除了开始和结束标记之间的文本没有出现外,所有内容似乎都正常工作。我是不是太累了,错过了一个简单的打字错误,还是做错了什么 JS和JQuery代码是: var displayMenuSelections = function(){ var menuSelection = menu[0].prices[0]; var menuItems = Object.keys(menuSelection); menuIte

我正在尝试使用JQuery从数组中追加内容,在html中创建一个选项下拉列表

除了开始和结束标记之间的文本没有出现外,所有内容似乎都正常工作。我是不是太累了,错过了一个简单的打字错误,还是做错了什么

JS和JQuery代码是:

var displayMenuSelections = function(){
  var menuSelection = menu[0].prices[0];
  var menuItems = Object.keys(menuSelection);
  menuItems.forEach(menuFunction);
}

function menuFunction(item){
  $('#menu').append($('<option value="' + item + '">' + item + '</option'));
}
典型选项标记的结果如下所示,开始标记和结束标记之间缺少“项”:

<option value="Cafe Latte"></option>

在我看来,您没有传递参数

item
发挥你的作用

menuFunction(item)
我只是假设你是想

var menuSelection
因此,您可以尝试将函数调用更改为

menuItems.forEach(menuFunction(menuSelection));
但是我没有测试过

您忘记了关闭选项标记的>。JQuery尝试为您关闭它,但在此过程中,内部项文本未被设置

Jquery采用了一种哲学,它尝试使用您提供的任何东西—这可能是好的,也可能是坏的,但在这种情况下,由于没有引发错误/异常,因此调试变得更加困难

var displayMenuSelections = function(){
  var menuSelection = menu[0].prices[0];
  var menuItems = Object.keys(menuSelection);
  menuItems.forEach(menuFunction);
}

function menuFunction(item){
  $('#menu').append($('<option value="' + item + '">' + item + '</option>'));
}

事实并非如此。javascript forEach方法将调用它的对象的每个元素传递给函数。所以menuItems.forEachmenuFunction会将menuItems对象的每个元素传递给menuFunction。非常感谢,已经很晚了,我很累,我发誓我检查了100次,没有发现任何遗漏!我的错!