如何使用jQuery返回一个对象,而不仅仅是值

时间:2014-04-02 09:59:56

标签: javascript jquery json

我正在寻找一种用.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} }

1 个答案:

答案 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);
         });

});

更新了小提琴http://jsfiddle.net/2Ma7U/1/