有时候我们需要对表格的行进行上移,下移,增加,删除的操作,使用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>
分享到:
相关推荐
本文主要介绍了使用JavaScript和jQuery实现从HTML表格中获取数据并将其拼成JSON字符串的操作示例。该示例涉及到JavaScript和jQuery对HTML页面表格数据的获取、遍历和JSON字符串的拼接相关操作技巧。 在该示例中,...
这个插件的工作原理是解析XML文档,并将其转换为JavaScript对象,然后以JSON字符串的形式返回。这样,开发者就可以轻松地在JavaScript中处理这些数据,例如在页面上动态显示或进行进一步的处理。 使用jQuery xml-to...
此外,jQuery 还支持 `.parseJSON()` 方法,用于解析 JSON 字符串为 JavaScript 对象。但需要注意,这个方法已被废弃,现在推荐使用原生的 JavaScript `JSON.parse()` 方法,如: ```javascript var jsonString = '...
在文章中的PHP实例部分,使用了ThinkPHP框架中的M方法来查询数据库,返回的是一个包含菜品信息的数组,然后使用json_encode()函数将数组编码为JSON字符串。 3. 在前端处理返回的JSON数据:在$.ajax()方法的success...
在项目中很多时候遇到这样的问题,需要动态的增加、删除表格的行与列,在学习jQuery的过程中,自己试着在网上找寻教程,发现都不符合自己的需要,所以就动手改写了一份简单的diy表格。目前实现动态增加 删除最后一行...
在这里,通过使用JQUERY+JQUERY UI+JSON-LIB+POI实现这个功能数据导出设计:通过使用JQUERY分析表格的结构,读取表格结构数据构建JSON字符串,发送到后台,后台分析表格结构,然后生成Excel数据. 本程序基于是...
在这个场景中,我们将探讨如何使用JSON字符串与Highcharts结合,实现动态的数据绑定,从而更好地理解"使用json字符highcharts绑定数据"这一主题。 首先,Highcharts本身不直接支持JSON格式的数据,但我们可以借助...
查询后,检查返回的数据表是否为空,如果不为空,使用StringBuilder构建一个JSON字符串,依次追加数据库中查询到的各个字段值,并将其转换为JSON格式,然后返回这个JSON字符串。 最后,可以注意到在代码片段中存在...
在了解了这些操作技巧之后,通过示例代码的运行,我们可以得到转换后的JSON字符串。这些字符串可以用于网络传输、本地存储或者直接用于前端展示等场景。在Web开发中,JSON格式数据的使用十分广泛,比如在AJAX请求中...
本文探讨了如何根据JSON字符串生成HTML,主要展示了如何利用JavaScript(jQuery 1.4.4)解析JSON数据并动态创建HTML元素,如文本框、密码框和下拉框。这个方法对于快速构建基于用户输入JSON数据的动态界面非常实用。...
2. **解析JSON**:jQuery提供了`$.parseJSON()`(在新版本中已弃用,推荐使用`JSON.parse()`)函数将JSON字符串转化为JavaScript对象。 3. **创建HTML结构**:使用jQuery选择器找到目标容器元素,然后动态创建表格...
2. 服务器返回JSON格式的数据,前端接收到响应后,使用`$.parseJSON()`或`JSON.parse()`解析JSON字符串。 3. 解析后的数据对象可以直接与EasyUI的表格、下拉框、对话框等组件结合,通过调用EasyUI的方法来更新组件的...
1. **解析JSON**:使用JSON库,如JavaScript的`JSON.parse()`或Java的`org.json`库,将JSON字符串解析成数据结构,如JavaScript对象或Java的Map对象。 2. **数据预处理**:如果JSON包含复杂结构,例如嵌套数组或...
在HTML源代码中使用JSON数据,通常需要使用JavaScript的`JSON.parse()`方法将JSON字符串转换为JavaScript对象,然后可以访问和操作这些数据。例如: ```javascript let jsonString = '{"name":"张三","age":30}'; ...
// 使用Gson或Jackson库将List转换为JSON字符串并写入响应 String jsonString = new Gson().toJson(dataList); response.getWriter().write(jsonString); } ``` 接下来,我们转向jQuery。jQuery简化了DOM操作,...
5. **JSON.stringify()**: 这是JavaScript内置的方法,用于将JavaScript值转换为JSON字符串,以便通过Ajax发送。 6. **后台解析JSON**: 服务器端(可能是PHP, Node.js, Java等)接收到JSON数据后,需要解析成相应的...
这里,`formData`是序列化表单数据得到的数组,然后我们创建一个空对象`json`,并遍历数组将表单字段名和值作为键值对添加进去,最后通过`JSON.stringify()`方法将其转换为JSON字符串。 总之,jQuery提供了丰富的...
- Web服务返回JSON格式的分页数据,jQuery接收到数据后,使用`$.parseJSON()`或`JSON.parse()`方法解析JSON字符串为JavaScript对象。 - 使用这些数据更新页面上的表格或列表,实现无刷新的效果。 ### 4. 示例代码 ...
- `.parseJSON()` 或 `JSON.parse()`:解析JSON字符串为JavaScript对象。 - `.append()`、`.html()` 和 DOM 操作:创建和更新表格元素。 - `.on()`:绑定点击事件,监听分页导航的用户交互。 - `.data()`:存储和...
如果你需要为表格或表格中的单元格自动命名,可以使用JavaScript的`Date.now()`函数生成唯一的ID或类名,结合字符串连接操作来实现。 通过以上步骤,你就能使用jQuery创建一个动态的、数据驱动的表格。这个功能在...