`
jaychang
  • 浏览: 734816 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

使用jQuery对表格的操作,组织JSON字符串

阅读更多

有时候我们需要对表格的行进行上移,下移,增加,删除的操作,使用jQuery会大大提高页面开发的效率。简化表格的各种操作。暂时不做解释哈。

    页面的html代码:

<table id="mbgl_tb" width="100%" border="0" cellpadding="0" cellspacing="1"  class="List">
                    <tr>
                      <td width="4%" nowrap class="List_item">序号</td>
                      <td  class="List_item">标题1</td>
                      <td  class="List_item">标题2</td>
                      <td  class="List_item">标题3</td>
                      <td  class="List_item">标题4</td>
                      <td  class="List_item">标题5</td>
                    </tr>
                    <tr id="hidden_tr" style="display: none;">
                      <td >0</td>
                      <td >a</td>
                      <td >b</td>
                      <td >c</td>
                      <td >d</td>
                      <td ><a href="#" class="List_operatelink" onClick="modifyTr(this);">修改</a> <a href="#" class="List_operatelink" onclick="if(confirm('确定要删除吗?') == true)deleteRow(this);">删除</a> <a href="#" class="List_operatelink" onclick="moveUp(this);">上移</a> <a href="#" class="List_operatelink" onclick="moveDown(this);">下移</a></td>
                    </tr>
                    <tr class="List_tr">
                      <td >1</td>
                      <td >1A</td> 
                      <td >1B</td>
                      <td >1C</td>
                      <td >1D</td>
                      <td ><a href="#" class="List_operatelink" onClick="modifyTr(this);">修改</a> <a href="#" class="List_operatelink" onclick="if(confirm('确定要删除吗?') == true)deleteRow(this);">删除</a> <a href="#" class="List_operatelink" onclick="moveUp(this);">上移</a> <a href="#" class="List_operatelink" onclick="moveDown(this);">下移</a></td>
                    </tr>
                    <tr class="List_tr">
                      <td >2</td>
                      <td >2A</td>
                      <td >2B</td>
                      <td >2C</td>
                      <td >2D</td>
                      <td ><a href="#" class="List_operatelink" onClick="modifyTr(this);">修改</a> <a href="#" class="List_operatelink" onclick="if(confirm('确定要删除吗?') == true)deleteRow(this);">删除</a> <a href="#" class="List_operatelink" onclick="moveUp(this);">上移</a> <a href="#" class="List_operatelink" onclick="moveDown(this);">下移</a></td>
                    </tr>
                    <tr class="List_tr">
                      <td >3</td>
                      <td >3A</td>
                      <td >3B</td>
                      <td >3C</td>
                      <td >3D</td>
                      <td ><a href="#" class="List_operatelink" onClick="modifyTr(this);">修改</a> <a href="#" class="List_operatelink" onclick="if(confirm('确定要删除吗?') == true)deleteRow(this);">删除</a> <a href="#" class="List_operatelink" onclick="moveUp(this);">上移</a> <a href="#" class="List_operatelink" onclick="moveDown(this);">下移</a></td>
                    </tr>
                  </table></td>
              </tr>
            </table>

   jQuery操作表格的代码:

 

<script type="text/javascript">
	function moveUp(element){
		var $cur_tr = $(element).parent().parent();
		var $mbgl_tb = $cur_tr.parent();
		//如果当前行是第一行,那么不允许上移
		if($mbgl_tb.children(".List_tr").html() == $cur_tr.html()){
			alert("当前为第一行,无需上移!");
			return;
		}
		//交换上下两个td的序号
		var $prev_tr = $cur_tr.prev();
		var prev_index = $prev_tr.children("td").html();
		var cur_index = $cur_tr.children("td").html();
		//当前tr的DOM对象
		var cur_tr=$cur_tr[0]; 
		//当前tr上一个的DOM对象
		var prev_tr = $prev_tr[0];
		prev_tr.cells[0].innerHTML = cur_index;
		cur_tr.cells[0].innerHTML = prev_index;
		$cur_tr.insertBefore($cur_tr.prev());
	}
	function moveDown(element){
		var $cur_tr = $(element).parent().parent();
		var $mbgl_tb = $cur_tr.parent();
		var $last_tr = $mbgl_tb.find("tr:last");
		//如果当前行是最后一行,那么不允许下移
		if($last_tr.html() == $cur_tr.html()){
			alert("当前为最后一行,无需下移!");
			return;
		}
		//交换上下两个td的序号
		var $next_tr = $cur_tr.next();
		//获取第一个td的html
		var next_index = $next_tr.children("td").html();
		var cur_index = $cur_tr.children("td").html();
		//当前tr的DOM对象
		var cur_tr=$cur_tr[0]; 
		//当前tr上一个的DOM对象
		var next_tr = $next_tr[0];
		next_tr.cells[0].innerHTML = cur_index;
		cur_tr.cells[0].innerHTML = next_index;
		$cur_tr.insertAfter($cur_tr.next());
	}
	function deleteRow(element){
		var $cur_tr = $(element).parent().parent();
		var $mbgl_tb = $cur_tr.parent();
		var startIndex = $cur_tr.get(0).rowIndex - 1;
		//转成dom对象
		var mbgl_tb = $mbgl_tb.get(0);
		for(var i = startIndex+1 ; i < mbgl_tb.rows.length ; i ++){
			var tableRow = mbgl_tb.rows[i];
			tableRow.cells[0].innerHTML = (i - 2)+"";
		}
		$cur_tr.remove();
	}
	function saveDataItem(){
		var $mbgl_tb = $('#mbgl_tb');
		var $clone_tr = $('#hidden_tr').clone();
		$clone_tr.addClass('List_tr');
		$clone_tr.show();
		var clone_tr = $clone_tr.get(0);
		var len = $mbgl_tb.get(0).rows.length;
		clone_tr.cells[0].innerHTML = len-1;
		clone_tr.cells[1].innerHTML = $('#item_text').val();
		clone_tr.cells[2].innerHTML = $('#show_type_select').text();
		clone_tr.cells[3].innerHTML = $('#len_text').val();
		clone_tr.cells[4].innerHTML = $('#unit_text').val();
		alert(clone_tr.innerHTML);
		$mbgl_tb.append("<tr class=List_tr>"+clone_tr.innerHTML+"</tr>");
		$('#item_text').val("");
		$('#show_type_select').val("");
		$('#len_text').val("");
		$('#unit_text').val("");
	}
	function saveTemplate(){
	    var jsonStr = "[";
	    var zf = '"';
		$_tr = $('#mbgl_tb').find('tr');
		for(var i = 2 ; i < $_tr.size() ; i++){
			var _tr = $_tr.eq(i).get(0);
			var cjsjx_txt = _tr.cells[1].innerHTML;
			var cjnr_txt  = _tr.cells[2].innerHTML;
			var cd_txt = _tr.cells[3].innerHTML;
			var dw_txt = _tr.cells[4].innerHTML;
			jsonStr += "{"+zf+"cjsjx"+zf+":"+zf+cjsjx_txt+zf
			            +","+zf+"cjnr"+zf+":"+zf+cjnr_txt+zf
			            +","+zf+"cd"+zf+":"+zf+cd_txt+zf
			            +","+zf+"dw"+zf+":"+zf+dw_txt+zf+"},";
		}	    
		jsonStr = jsonStr.substring(0,jsonStr.length - 1);
	        jsonStr += "]";
	      alert(jsonStr);
         }
</script>

 

 

0
3
分享到:
评论

相关推荐

    js与jQuery实现获取table中的数据并拼成json字符串操作示例.docx

    本文主要介绍了使用JavaScript和jQuery实现从HTML表格中获取数据并将其拼成JSON字符串的操作示例。该示例涉及到JavaScript和jQuery对HTML页面表格数据的获取、遍历和JSON字符串的拼接相关操作技巧。 在该示例中,...

    jQuery xml-to-json xml转JSON插件

    这个插件的工作原理是解析XML文档,并将其转换为JavaScript对象,然后以JSON字符串的形式返回。这样,开发者就可以轻松地在JavaScript中处理这些数据,例如在页面上动态显示或进行进一步的处理。 使用jQuery xml-to...

    JQuery操作json的例子

    此外,jQuery 还支持 `.parseJSON()` 方法,用于解析 JSON 字符串为 JavaScript 对象。但需要注意,这个方法已被废弃,现在推荐使用原生的 JavaScript `JSON.parse()` 方法,如: ```javascript var jsonString = '...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    在文章中的PHP实例部分,使用了ThinkPHP框架中的M方法来查询数据库,返回的是一个包含菜品信息的数组,然后使用json_encode()函数将数组编码为JSON字符串。 3. 在前端处理返回的JSON数据:在$.ajax()方法的success...

    jquery实现表格行与列的动态增加和删除,附获取表格内容(字符串、json)格式

    在项目中很多时候遇到这样的问题,需要动态的增加、删除表格的行与列,在学习jQuery的过程中,自己试着在网上找寻教程,发现都不符合自己的需要,所以就动手改写了一份简单的diy表格。目前实现动态增加 删除最后一行...

    jsp实现HTML表格导出和导入Excel功能

    在这里,通过使用JQUERY+JQUERY UI+JSON-LIB+POI实现这个功能数据导出设计:通过使用JQUERY分析表格的结构,读取表格结构数据构建JSON字符串,发送到后台,后台分析表格结构,然后生成Excel数据. 本程序基于是...

    使用json字符highcharts绑定数据

    在这个场景中,我们将探讨如何使用JSON字符串与Highcharts结合,实现动态的数据绑定,从而更好地理解"使用json字符highcharts绑定数据"这一主题。 首先,Highcharts本身不直接支持JSON格式的数据,但我们可以借助...

    JQuery 获取json数据$.getJSON方法的实例代码

    查询后,检查返回的数据表是否为空,如果不为空,使用StringBuilder构建一个JSON字符串,依次追加数据库中查询到的各个字段值,并将其转换为JSON格式,然后返回这个JSON字符串。 最后,可以注意到在代码片段中存在...

    JS实现将二维数组转为json格式字符串操作示例

    在了解了这些操作技巧之后,通过示例代码的运行,我们可以得到转换后的JSON字符串。这些字符串可以用于网络传输、本地存储或者直接用于前端展示等场景。在Web开发中,JSON格式数据的使用十分广泛,比如在AJAX请求中...

    根据json字符串生成Html的一种方式

    本文探讨了如何根据JSON字符串生成HTML,主要展示了如何利用JavaScript(jQuery 1.4.4)解析JSON数据并动态创建HTML元素,如文本框、密码框和下拉框。这个方法对于快速构建基于用户输入JSON数据的动态界面非常实用。...

    jquery数据列表(需要json.jar)

    2. **解析JSON**:jQuery提供了`$.parseJSON()`(在新版本中已弃用,推荐使用`JSON.parse()`)函数将JSON字符串转化为JavaScript对象。 3. **创建HTML结构**:使用jQuery选择器找到目标容器元素,然后动态创建表格...

    jsonData,js,easyui,jquery

    2. 服务器返回JSON格式的数据,前端接收到响应后,使用`$.parseJSON()`或`JSON.parse()`解析JSON字符串。 3. 解析后的数据对象可以直接与EasyUI的表格、下拉框、对话框等组件结合,通过调用EasyUI的方法来更新组件的...

    json转表格html

    1. **解析JSON**:使用JSON库,如JavaScript的`JSON.parse()`或Java的`org.json`库,将JSON字符串解析成数据结构,如JavaScript对象或Java的Map对象。 2. **数据预处理**:如果JSON包含复杂结构,例如嵌套数组或...

    使用json封装数据 html源代码

    在HTML源代码中使用JSON数据,通常需要使用JavaScript的`JSON.parse()`方法将JSON字符串转换为JavaScript对象,然后可以访问和操作这些数据。例如: ```javascript let jsonString = '{"name":"张三","age":30}'; ...

    servlet+jquery表格数据填充

    // 使用Gson或Jackson库将List转换为JSON字符串并写入响应 String jsonString = new Gson().toJson(dataList); response.getWriter().write(jsonString); } ``` 接下来,我们转向jQuery。jQuery简化了DOM操作,...

    json数据jquery异步示例

    5. **JSON.stringify()**: 这是JavaScript内置的方法,用于将JavaScript值转换为JSON字符串,以便通过Ajax发送。 6. **后台解析JSON**: 服务器端(可能是PHP, Node.js, Java等)接收到JSON数据后,需要解析成相应的...

    JQuery中Json的使用示例

    这里,`formData`是序列化表单数据得到的数组,然后我们创建一个空对象`json`,并遍历数组将表单字段名和值作为键值对添加进去,最后通过`JSON.stringify()`方法将其转换为JSON字符串。 总之,jQuery提供了丰富的...

    jquery+json 无刷新分页

    - Web服务返回JSON格式的分页数据,jQuery接收到数据后,使用`$.parseJSON()`或`JSON.parse()`方法解析JSON字符串为JavaScript对象。 - 使用这些数据更新页面上的表格或列表,实现无刷新的效果。 ### 4. 示例代码 ...

    jQuery实现json表格数据自动分页插件功能.zip

    - `.parseJSON()` 或 `JSON.parse()`:解析JSON字符串为JavaScript对象。 - `.append()`、`.html()` 和 DOM 操作:创建和更新表格元素。 - `.on()`:绑定点击事件,监听分页导航的用户交互。 - `.data()`:存储和...

    Jquery创建动态表格

    如果你需要为表格或表格中的单元格自动命名,可以使用JavaScript的`Date.now()`函数生成唯一的ID或类名,结合字符串连接操作来实现。 通过以上步骤,你就能使用jQuery创建一个动态的、数据驱动的表格。这个功能在...

Global site tag (gtag.js) - Google Analytics