Javascript 如何在下拉框中填充“";“价值”;每个选项的参数?

Javascript 如何在下拉框中填充“";“价值”;每个选项的参数?,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码根据选择的不同下拉框填充下拉框: ps4models=新阵列(“选择我的型号”、“PS4(发布型号)”、“PS4纤薄”、“PS4专业版”); xboxonemodels=新阵列(“选择我的型号”、“Xbox One(发布型号)”、“Xbox One Slim”、“Xbox One Scorpio”); populateSelect(); $(函数(){ $('#控制台')。更改(函数(){ populateSelect(); }); }); 函数populateSelect(){

我有以下代码根据选择的不同下拉框填充下拉框:

ps4models=新阵列(“选择我的型号”、“PS4(发布型号)”、“PS4纤薄”、“PS4专业版”);
xboxonemodels=新阵列(“选择我的型号”、“Xbox One(发布型号)”、“Xbox One Slim”、“Xbox One Scorpio”);
populateSelect();
$(函数(){
$('#控制台')。更改(函数(){
populateSelect();
});
});
函数populateSelect(){
控制台=$(“#控制台”).val();
$('#model').html('');
如果(控制台==“ps4”){
ps4models.forEach(函数(t){
$('#model')。追加('+t+'');
});
}
如果(控制台=='xboxone'){
xboxonemodels.forEach(函数(t){
$('#model')。追加('+t+'');
});
}
}

选择我的控制台
PS4
Xbox One
而不是:

$('#model').append('<option>' + t + '</option>');
$('#model')。追加('+t+'');
做:

$('#model').append($(''.val(t).text(t));

注意:这更像是jQuery附加选项的方式,并将自动转义特殊字符,如
&

我觉得我遗漏了一些东西,但要用值附加选项,就要像在HTML代码段中一样,用值附加选项:

      $('#model').append('<option value="' + t + '">' + t + '</option>');
$('#model')。追加('+t+'');

在普通的旧JavaScript中,您可以创建一个选项元素,如下所示:

var modelSelect = document.getElementById('model');
var selectOption = document.createElement('option');

selectOption.text = 'Select My Model';
selectOption.value = 'Select My Model';

modelSelect.add(selectOption);
您可以创建一个jQuery插件来处理填充下拉列表的操作。您所需要做的就是传入数据。它可以是数组或对象

如果数组中的每个项都是对象,则还可以指定键和文本字段

此外,您应该创建一个数据对象,并通过键访问不同的值。这将允许您轻松地循环数据

(函数($){
$.fn.populateDropdown=函数(数据、移除先前、值、文本){
text=text | |值;
如果(removePrevious==真){
this.find('option').remove();
}
如果($.isArray(数据)){
this.append(data.map)(函数(项){
let value=$.isPlainObject(item)?item[值]:item;
let text=$.isPlainObject(item)?item[text]:item;
返回$('').val(值).text(文本);
}));
}否则{
this.append(Object.keys(data).map(function(key)){
返回$('').val(key).text(数据[key][value]);
}));
}
归还这个;
}
})(jQuery)
var viewData={
PS4模型:{
文字:‘PS4’,
值:[“选择我的型号”、“PS4(发布型号)”、“PS4纤薄型”、“PS4专业版”]
},
XboxOne机型:{
文字:“Xbox One”,
值:[“选择我的型号”、“Xbox One(发布型号)”、“Xbox One苗条”、“Xbox One天蝎座”]
}
};
$(“#控制台”)
.append($('').val('selectconsole')。text('SelectMyConsole'))
.populateDropdown(viewData,false,'text');
$(函数(){
$(“#控制台”)。更改(功能(e){
$('#model').populateDropdown(viewData[e.target.value]['value'],true);
});
});


谢谢!可以用空格表示值吗?我假设必须用递增的数字表示值?值属性可以是任何字符串。但请注意,即使将其设置为数字,它也将是字符串。它可以有空格。特殊字符呢?我在其中一些字符中有括号。括号没有问题。您尝试过吗?特殊字符双引号、大于…等字符将自动转义。感谢您的帮助Adrian。我使用了trincot的示例,但我相信您的示例也不错
var modelSelect = document.getElementById('model');
var selectOption = document.createElement('option');

selectOption.text = 'Select My Model';
selectOption.value = 'Select My Model';

modelSelect.add(selectOption);