如何使用jquery ajax的$ .get方法传递数组?

时间:2014-07-14 10:35:39

标签: jquery ajax arrays get

我在脚本中使用以下代码来调用servlet:

function dynamicallyDisplayText() {
    var doctype = document.getElementById("doctype");
    var lang = document.getElementById("lang");
    var inputNames = [];
    $("input").each(function () {
            var name = $(this).attr("name");

            if (((name) && name !== ""))) {
            inputNames.push(this);
        }
    });

$.get('ServletClass', {
    doctype: doctype,
    lang: lang,
    "inputNames": "inputNames"
}, function (responseJson) {
    $.each(responseJson, function (index, fieldvalue) {
        CKEDITOR.instances.editor1.setData(fieldvalue);
    });
});
}

但是,它没有按预期重定向到servlet。我只想使用$.get方法,那么如何将数组传递给$.get方法,以便我可以在servlet上重定向。

2 个答案:

答案 0 :(得分:0)

$.get中应该有

"inputNames": inputNames

答案 1 :(得分:0)

inputNames是您正在执行的each()函数中 DOM元素 的数组,而不是名称

inputNames.push(this);

其中this是本机DOM节点,而不是名称

将其更改为

var inputNames = [];
$("input").each(function() {
    var name = $(this).attr("name");

    if (name) {
        inputNames.push( name ); // not "this"
    }
});

和$ .get函数

$.get('ServletClass', {
    doctype     : doctype,
    lang       : lang,
    inputNames : inputNames
}, function(responseJson) {
    console.log(responseJson);
});

作为旁注,你可以用地图替换每个函数

var inputNames = $.map( $("input"), function (item) { return item.name });