[JS] jQuery与table
2017-08-12 17:16
176 查看
小生做WebGIS时项目经验记录
背景
环境交代
涉及内容
jQuery ajax传查询参数给后台并获得数据
ajax获取后台数据
SpringMVC处理ajax请求并返回json数据
ajax结果
后端
前端
将后端数据打印到table中
html说明
jQuery打印收到的数据
tr点击事件绑定获取其id
实现
结果
完整代码
使用jQuery把数据展示在table中
给table的每一行绑定点击事件,获取其id,便于在地图上显示 该行信息的矢量点
bootstrap做ui:不了解bootstrap没关系,可以看懂此例子
jquery 2.0版本
SpringMVC响应ajax请求返回JSON数据
JS遍历Map<String,Object[]>
jQuery动态页面显示
jQuery取tbody指定tr,指定td的id
@ResponseBody为自动返回JSON字符串的关键
但@ResponseBody要配置HttpMessageConverter:如何配置HttpMessageConverter
存放table的div声明
涉及内容:Map<String,Object[]>的遍历
这里代码只有jQuery将信息显示在table,与点击效果
SpringMVC与jQuery ajax部分因环境的问题无法给出
背景
环境交代
涉及内容
jQuery ajax传查询参数给后台并获得数据
ajax获取后台数据
SpringMVC处理ajax请求并返回json数据
ajax结果
后端
前端
将后端数据打印到table中
html说明
jQuery打印收到的数据
tr点击事件绑定获取其id
实现
结果
完整代码
背景
使用jQuery的ajax获取后台的数据使用jQuery把数据展示在table中
给table的每一行绑定点击事件,获取其id,便于在地图上显示 该行信息的矢量点
环境交代
SpringMVC做Controllerbootstrap做ui:不了解bootstrap没关系,可以看懂此例子
jquery 2.0版本
涉及内容
jQuery ajaxSpringMVC响应ajax请求返回JSON数据
JS遍历Map<String,Object[]>
jQuery动态页面显示
jQuery取tbody指定tr,指定td的id
jQuery ajax传查询参数给后台,并获得数据
ajax获取后台数据
//keywords为用户选择的[关键词]对应的id,这里模拟选择的id为1,9 var keywords = ["1","9"]; //获得 景点 信息 $.ajax({ type : 'post', url : '/ajax_spots_keywords', dataType : 'text', async : false, data : { keywords : keywords }, success: function (data) { //成功获取后台数据 console.log("后端传来的数据:"+data); spotsMap = JSON.parse(data); showSpotsInfo(spotsMap); }, error: function () { $("#info").html("筛选景点出错,请重试。"); //错误反馈信息 ret = false; } });
SpringMVC处理ajax请求,并返回json数据
功能:获取ajax从前端传来的查询参数keywords,并返回数据库查询结果Map<String,Object[]>@ResponseBody为自动返回JSON字符串的关键
但@ResponseBody要配置HttpMessageConverter:如何配置HttpMessageConverter
@RequestMapping(value = "/ajax_spots_keywords") public @ResponseBody Map<String,Object[]> getSpots(@RequestParam(value="keywords[]", required = false,defaultValue = "") String[] keywords) { //输出传来的参数 for (int i=0; i<keywords.length; i++){ System.out.print("[wq]"+keywords[i]); } //模拟数据库查询 Map<String,Object[]> map = new HashMap<String, Object[]>(); map.put("1",new Object[]{ "大人80元,小孩50元","早上8点","120分钟","这个景点很好","看海","风景好" }); map.put("2",new Object[]{ "大人80元,小孩50元","早上8点","120分钟","这个景点很好","看海","风景好" }); return map; }
ajax结果
后端
成功收到前端查询参数前端
成功收到后端返回的JSON数据将后端数据打印到table中
html说明
bootstrap与jquery的cdn<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script> <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
存放table的div声明
<div id="spotsInfo"></div>
jQuery打印收到的数据
遍历map,拼接字符串,输出到div中;涉及内容:Map<String,Object[]>的遍历
function showSpotsInfo(spotsMap) { var spotsInfo = "<table class='table'>"+ "<thead><tr>"+ "<th>编号</th>"+ "<th>门票</th>"+ "<th>开放时间</th>"+ "<th>建议游玩时间</th>"+ "<th>描述</th>"+ "<th>关键词</th>" "</tr></thead>"+ "<tbody>"; for (var key in spotsMap) { spotsInfo += "<tr>"; spotsInfo += "<td id='"+key+"'>"+key+"</td>"; for (var i=0; i<4; i++) { spotsInfo += "<td>"+spotsMap[key][i]+"</td>"; } spotsInfo += "<td>"; for (var j=4; j<spotsMap[key].length; j++) { spotsInfo += spotsMap[key][j]+" "; } spotsInfo += "</td>"; spotsInfo += "</tr>"; } spotsInfo += "</tbody>"+ "</table>"; $("#spotsInfo").html(spotsInfo); }
tr点击事件绑定,获取其id
实现
//为tbody的每一行绑定点击事件 $("tbody tr").each(function(){ $(this).bind("click",function(){ //去除以前选中的标志 $("tbody tr").each(function () { $(this).removeClass(); //去除之前选择的行颜色 }) //点击该行 高亮显示 $(this).attr("class","success"); //success为bootstrap的class,为绿色 //取出该行 第一个td 的id console.log( $(this).find("td").first().attr("id") ); }); });
结果
完整代码
该代码效果图这里代码只有jQuery将信息显示在table,与点击效果
SpringMVC与jQuery ajax部分因环境的问题无法给出
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表格测试</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script> <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"></head>
<body>
<div id="spotsInfo"></div></body>
<script>
var spotsInfo;
/*
* @function: 输出景点的信息
* @param: spotsMap景点信息的键值对
* key : id景点的id
* value : Objectp[]景点的信息数组
*/
function showSpotsInfo(spotsMap) {
var spotsInfo =
"<table class='table'>"+
"<thead><tr>"+
"<th>编号</th>"+
"<th>门票</th>"+
"<th>开放时间</th>"+
"<th>建议游玩时间</th>"+
"<th>描述</th>"+
"<th>关键词</th>"+
"</tr></thead>"+
"<tbody>";
for (var key in spotsMap) {
spotsInfo += "<tr class>";
spotsInfo += "<td id='"+key+"'>"+key+"</td>";
for (var i=0; i<4; i++) {
spotsInfo += "<td>"+spotsMap[key][i]+"</td>";
}
spotsInfo += "<td>";
for (var j=4; j<spotsMap[key].length; j++) {
spotsInfo += spotsMap[key][j]+" ";
}
spotsInfo += "</td>";
spotsInfo += "</tr>";
}
spotsInfo +="</tbody>"+
"</table>";
$("#spotsInfo").html(spotsInfo);
}
$(document).ready(function(){
var spotsMap =
{
"1" : ["大人80元,小孩50元","早上8点","120分钟","这个景点很好","看海","风景好"],
"2" : ["大人180元,小孩150元","早上6点","240分钟","这个景点很好","真的好","风景好"]
};
showSpotsInfo(spotsMap);
$("tbody tr").each(function(){
$(this).bind("click",function(){
//去除以前选中的标志
$("tbody tr").each(function () {
$(this).removeClass();
});
$(this).attr("class","success");
console.log( $(this).find("td").first().attr("id") );
});
});
});
</script>
</html>
相关文章推荐
- jquery.table.rowspan.js 表格自动合并单元格插件
- JS+JQuery 实现前台 table 分页功能
- DataTable 递归 简单的程序,来实现无限级列表 结合 jquery.table.js 实现
- js和jquery求table的列和
- 利用jquery-latest.js实现合并table多列重复行
- js实现table排序(jQuery下的jquery.sortElements)
- js随笔,css和js禁止网页选择文本,table的class样式使得td的class样式失效,jquery获得元素坐标
- jquery、js获取table,遍历输出tr中各个td的内容。
- 一款用于表格数据自定义排序的jQuery插件jquery.tablesortable.js(附ajax例子)
- table表头和首列的表格固定-JQuery、js实现的Table表头固定
- 可编辑的table(原生JS+jQuery)
- JS(JQuery)操作Table的相关方法
- 用js(jQuery)获取table中对应的td中的值!
- js遍历table 和 jquery 遍历table
- JSON对象配合jquery.tmpl.min.js插件,手动攒出一个table
- 可编辑的table(原生JS+jQuery)
- js、jquery 遍历table
- jquery.dad.js实现table的垂直拖拽(并取到当前拖拽对象)
- js改变,设置table单双行颜色,jquery改变,设置table单双行颜色
- 有关js、jquery操作table的例子