如何通过jQuery访问请求中发送的变量?

时间:2010-11-18 15:00:45

标签: jquery arrays loops struts jquery-click-event

我正在使用struts。我的ActionForm在其中设置了一个ArrayList,如何通过jQuery中的控制器在按钮点击时从JSP发送ActionForm来访问该数组。这样我就可以循环遍历该数组的元素。我猜它是这样的,但这是在黑暗中刺伤(这不起作用)。

$('myButton').click(function(){
    var myArrayToLoopThrough = $('myForm.myArray');
    for(){
        //looping stuff
    }
}

4 个答案:

答案 0 :(得分:0)

jQuery对JSP生成的HTML进行操作。

因此,请使用Firebug for Firefox等工具查看浏览器中生成的HTML。

然后,您可以使用jQuery选择并迭代HTML元素。以下是最有用的东西的基本语法:

选择ID $("#id")

按班级选择$(".class")

按HTML标记选择$("p")$("span")

对选择进行迭代

$(...something...).each(function(){
   // this is the DOM element
   // $(this) is a jQuery object containing the DOM element
});

Official jQuery documentation on selectors


修改

根据您的评论,您似乎正在寻找一种与服务器对象进行通信的方式,而不是生成的HTML。

Javascript(jQuery是用Javascript编写的)是一种只能与生成的HTML交互的Web浏览器语言。您的Java对象不会发送到浏览器。

如果确实需要从服务器检索数据,则需要新的HTTP请求才能检索这些数据。这可以使用AJAX methods在jQuery中完成。

答案 1 :(得分:0)

您可以查看.serializeArray()。您可以将表单中的所有数据转换为一个漂亮的对象,这样您就可以使用数据执行所需的操作。

jQuery .serializeArray() Documentation

var data = $('#form-id').serializeArray();

现在你可以遍历data。密钥为namevalue

答案 2 :(得分:0)

这是你要找的吗?

$('.myButton').click(function(e) {
    var data = $(this).closest('form').serializeArray();
    for( var i = 0; i < data.length; i++ ) {
        var field = data[i];
        console.log( field.name + '=>' + field.value );
    }
});

答案 3 :(得分:0)