如何在jsp中循环从javascript传递的JSONArray?
在我的jsp中,我试图迭代从js传递的JSONArray。 这就是我所做的:如何在jsp中循环从javascript传递的JSONArray?,javascript,jsp,Javascript,Jsp,在我的jsp中,我试图迭代从js传递的JSONArray。 这就是我所做的: <script lang="javascript"> var movies = $("#searchResult"); console.log(movies); for (var i = 0; i < movies.length; i++) {
<script lang="javascript">
var movies = $("#searchResult");
console.log(movies);
for (var i = 0; i < movies.length; i++) {
console.log(movies[i]);
}
</script>
var movies=$(“#搜索结果”);
console.log(电影);
for(var i=0;i
但是它没有给我任何东西。感谢您的帮助 所说的“它不给我任何东西”,您的意思是“movies”变量未定义吗?如果是,你试过这个答案吗 编辑(添加): 我认为通过提供console.log方法显示的内容来找到罪犯会更有帮助;这样我们就可以知道问题是在#searchResult中还是在'movies'变量的类型中。通过“它不给我任何东西”,您是说'movies'变量未定义吗?如果是,你试过这个答案吗 编辑(添加):
我认为通过提供console.log方法显示的内容来找到罪犯会更有帮助;这样我们就可以知道问题是在#searchResult中还是在'movies'变量的类型中。似乎您正在为movies分配一个JQuery元素,如果该元素不存在,您将生成一个新的,然后movies.length将为0,您将不会得到任何结果。如果有一个名为searchResult的元素,您将得到一个由一个元素组成的数组。似乎您正在为movies分配一个JQuery元素,如果该元素不存在,您将生成一个新的元素,那么movies.length将为0,您将什么也得不到。如果有一个名为searchResult的元素,您将得到一个元素数组。searchResult中的
意味着您将得到一个元素,该元素的id
等于searchResult
解决方案1
我不知道你的jsp在哪里,我假设你有一个getmovies.jsp
请求,然后你可以像这个jquery一样收到结果
$.getJSON("getmovies.jsp", function(json) {
$.each (json, function(k, movie) {
console.log(movie.title);
});
});
第2号解决方案
如果您有这样的代码:
<% List moviesList = (List) session.getAttribute("clist");
JSONArray moviesJSON = new JSONArray();
JSONObject tmp;
for (int i = 0; i < selected.size(); i++) {
tmp = new JSONObject();
tmp.put("id", selected.get(i));
tmp.put("title", selected.get(i).getTitle());
moviesJSON.put(tmp);
}%>
var moviesJSON = <%=moviesJSON%>;
moviesJSON.each(function( movies ) {
movies.each(function(index, movie) {
console.log( index + ": " + movie.title );
});
结果如下:
- I
- II
- III
- IV
- V
在#searchResult
中的#
意味着您将获得一个元素,该元素的id
等于searchResult
解决方案1
我不知道你的jsp在哪里,我假设你有一个getmovies.jsp
请求,然后你可以像这个jquery一样收到结果
$.getJSON("getmovies.jsp", function(json) {
$.each (json, function(k, movie) {
console.log(movie.title);
});
});
第2号解决方案
如果您有这样的代码:
<% List moviesList = (List) session.getAttribute("clist");
JSONArray moviesJSON = new JSONArray();
JSONObject tmp;
for (int i = 0; i < selected.size(); i++) {
tmp = new JSONObject();
tmp.put("id", selected.get(i));
tmp.put("title", selected.get(i).getTitle());
moviesJSON.put(tmp);
}%>
var moviesJSON = <%=moviesJSON%>;
moviesJSON.each(function( movies ) {
movies.each(function(index, movie) {
console.log( index + ": " + movie.title );
});
结果如下:
- I
- II
- III
- IV
- V
var movies=$(“#搜索结果”);
console.log(电影)
movies变量可以是string。请检查一下。如果是字符串,则使用分隔符将其拆分,则循环将正常。var movies=$(“#searchResult”);
console.log(电影)
movies变量可以是string。请检查一下。如果是字符串,则使用分隔符拆分它,那么循环就可以了。您可以发布var movies
变量保存的JSON数组值吗?注意:#searchResult
将生成id为searchResult
的所有元素,并且由于id应该是唯一的,这将为您提供一个包含1个元素的数组。#searchResult
中的
意味着您将获得一个元素,该元素的id
等于searchResult
。我建议您改用标签。类似于这样的$(“p”)
此表达式将获取从文档中选择的DOM元素的集合。在本例中,标记为p
。您可以发布var movies
变量所持有的JSON数组值吗?注意:#searchResult
将生成id为searchResult
的所有元素,并且由于id应该是唯一的,这将为您提供一个包含1个元素的数组。#searchResult
中的
意味着您将获得一个元素,该元素的id
等于searchResult
。我建议您改用标签。类似于这样的$(“p”)
此表达式将获取从文档中选择的DOM元素的集合。在这种情况下,标签p
。虽然这是一个很好的点和+1,但它仍然属于评论类别,并且仅链接到另一篇文章的答案可能会吸引反对票。所以你应该试着证明自己的回答是正确的。@Rajesh我认为他还没有权利评论别人的问题…@Simon我知道这一点。需要50个代表才能获得评论权限。我的意思是,他的回答就像是一个评论,这可能会吸引反对票。但他的观点是正确的。他别无选择,只能把它作为答案,他应该把它描述得足够清楚,从而为答案辩护。@Rajesh谢谢你的建议。我已经编辑了我的答案,我的编辑有帮助吗?虽然这是一个好的点和+1,但它仍然属于评论类别,并且只有链接到另一篇文章的答案可能会吸引反对票。所以你应该试着证明自己的回答是正确的。@Rajesh我认为他还没有权利评论别人的问题…@Simon我知道这一点。需要50个代表才能获得评论权限。我的意思是,他的回答就像是一个评论,这可能会吸引反对票。但他的观点是正确的。他别无选择,只能把它作为答案,他应该把它描述得足够清楚,从而为答案辩护。@Rajesh谢谢你的建议。我已经编辑了我的答案,我的编辑有帮助吗?