Javascript 追加选项标记以使用JQuery从数组中选择标记
我正在尝试使用JQuery从数组中追加内容,在html中创建一个选项下拉列表 除了开始和结束标记之间的文本没有出现外,所有内容似乎都正常工作。我是不是太累了,错过了一个简单的打字错误,还是做错了什么 JS和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
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次,没有发现任何遗漏!我的错!