我正在寻找一种用.val();
或.array
替换jQuery中的.object
的方法。因此,我只能返回所选值的完整数组,而不是仅获取下拉值。
我有一个下拉菜单,允许用户选择多个游戏类型',我将此输出到屏幕,当用户点击下一个游戏类型的内容时#' 39;应作为JSON请求发送。
我目前使用的代码如下,但它只返回游戏类型'名字,所以当我运行代码时,我得到了RPG'在控制台中。我需要的是完整的对象,所以RPG,出版商,游戏等。
我看过jQuery中的API文档并且无法找到一种方法,是否可以使用jQuery?
Js代码:
$("#nextbutton").click(function () {
var datatosend = {
gametypes: [],
market: [] //This is populated using the same method however i don't need the whole object, just the name so this works
};
$("#comboGameType").find(":selected").each(function() {
var str = $(this).val();
datatosend.gametypes.push(str);
console.log(str);
});
});
JSON示例:
{
"games": [{
"gameType": "RPG",
"publishers": [{
"publisher": "Square",
"titles": [{
"title": "Final Fantasy",
"gameReleases": [ 2006, 2008, 2010, 2012, 2013, 2014 ]
}]
}]
}]
}
html非常标准,它通过js
填充<select id="comboGameType" class="selectpicker" multiple> </select>
JS处理下拉和显示选择的更改:
$('#comboGameType').change(function () {
var values = $('#comboGameType').val();
var parsedData = JSON.parse($myData);
for (var i = 0; i < values.length; i += 1) {
$('#output').append("<div>" + values[i] + "</div>")
}
});
下面是一个小提示,作为一个例子 - 当你查看控制台时看到下拉的值被返回,但是我试图返回FULL对象(例如RPG中的所有内容){{3} }
答案 0 :(得分:1)
您可以使用jQuery data存储整个对象并在以后检索它。
$(parsedData.genres).each(function (i) {
$("#pubCombo").append($("<option/>", {
val: this.genre,
html: this.genre,
data: this
}));
});
$("#next").click(function () {
var datatosend = {
gametypes: [],
market: []
};
$("#pubCombo").find(":selected").each(function() {
var obj = $(this).data();
datatosend.gametypes.push(obj);
console.log(obj);
});
});