我正在使用struts。我的ActionForm在其中设置了一个ArrayList,如何通过jQuery中的控制器在按钮点击时从JSP发送ActionForm来访问该数组。这样我就可以循环遍历该数组的元素。我猜它是这样的,但这是在黑暗中刺伤(这不起作用)。
$('myButton').click(function(){
var myArrayToLoopThrough = $('myForm.myArray');
for(){
//looping stuff
}
}
答案 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
。密钥为name
和value
。
答案 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)