动态表格示例

作产品页时有需要动态表格支持,故作一个示例先进行测试表格的使用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/include/taglib.jsp"%>

<html>
<head>
  <title>动态表格操作</title>
  <SCRIPT type=text/javascript>
    //上移
    function moveUp(obj) {
      var rowCount = $("#oTable tr").size();
      var curRow = $(obj).parent().parent().prevAll().length + 1;
      //获取当前行是第几行
      if (curRow == 1){
        alert("第一行不可以上移");
      } else {
        var curTr = $(obj).parent().parent();
        var preTr = curTr.prev();
        var curValue = curTr.children("td").html();
        var preValue = preTr.children("td").html();
//        alert("cur = " + curValue + " ,next = " + nextValue);
        curTr.children("td").eq(0).html(preValue);
        preTr.children("td").eq(0).html(curValue);
        //获取当前行的上一行
        var preTrClone = preTr.clone(true);
        curTr.after(preTrClone);
        //在curTr后插入一行
        preTr.remove();
      }
    }

    //下移
    function moveDown(obj) {
      var rowCount = $("#oTable tr").size();
      var curRow = $(obj).parent().parent().prevAll().length + 1;
      var count = rowCount - curRow;
      if (count == 0) {
        alert("当前行不可以下移");
      } else {
        var curTr = $(obj).parent().parent();
        var nextTr = curTr.next();
        var curValue = curTr.children("td").html();
        var nextValue = nextTr.children("td").html();
        curTr.children("td").eq(0).html(nextValue);
        nextTr.children("td").eq(0).html(curValue);
        //获取当前行的下一行
        var curTrClone = curTr.clone(true);
        nextTr.after(curTrClone);
        curTr.remove();
      }
    }

    function del(e) {
      alert($(e).parent().html());
      var cur = $(e).parent().html();
      $("#oTable tr td li").each(
          function(){
            alert($(this).html());
            var val = $(this).html();
            if(cur == val) {
              $(e).parent().remove();
            }
          });
    }


    <!-- jQuery对无序列表排序的原理是:获取到无序列表中的所有列表项,并转成数组形式,使用JavaScript函数对其进行排序后再次输出。 -->

    function create() {
      var isOk = false;
      var text = "&nbsp;&nbsp;<INPUT onclick='del(this)' type='button' value='delete'><br/>";
      var sli = "<li style='list-style-type:none'>";
      var sli1 = "</li>";
      $("#oTable tr").each(
          function() {
            alert($(this).children("td").eq(1).html());
            if($("#name").val() == $(this).children("td").eq(1).html()) {
              var value = $(this).children("td").eq(3).html();
//              alert(curTr.children("td").eq(3).html()); //取得无序表值...
              var val = $("#value").val();
              value = value + sli + val + text + sli1;
              $(this).children("td").eq(3).html(value);
              isOk = true;

              $("#oTable tr td li").each(
                function(){
                  alert($(this).html());
                }
              );
            }
          });
      if(!isOk) {
        var table = $("#oTable");
        var rowCount = $("#oTable tr").size();
        var tr = $("#oTable tr").eq(0).clone(true);
        tr.children("td").eq(0).html(rowCount + 1);
        tr.children("td").eq(1).html("颜色5");
        tr.children("td").eq(2).html("单选属性");
        tr.children("td").eq(3).html("test5.. : 黑色5");
        tr.appendTo(table);
      }
    }

 

    function save() {
      var rowCount = $("#oTable tr").size();
      var data = new Array();
      var index = 0;
      $("#oTable tr").each(
          function() {
            alert($(this).children("td").eq(0).html());
            alert($(this).children("td").eq(1).html());
            alert($(this).children("td").eq(2).html());
            alert($(this).children("td").eq(3).html());
            data[index]=new Array();
            data[index][0] = $(this).children("td").eq(0).html();
            data[index][1] = $(this).children("td").eq(1).html();
            data[index][2] = $(this).children("td").eq(2).html();
            data[index][3] = $(this).children("td").eq(3).html();
            index = index + 1;
          });

      alert(data);
    }

 

    function onselect() {  //按下鼠标右键选中表格中的某行。

      var oObj = event.srcElement;
      alert("test select. "+ oObj.tagName);
      alert("test select. "+ oObj.parentNode.id);
      var line = oObj.parentNode;
      alert("l1 = " + $(line).children("td").eq(0).html());
      alert("l1 = " + $(line).children("td").eq(1).html());
      alert("l1 = " + $(line).children("td").eq(2).html());
      alert("l1 = " + $(line).children("td").eq(3).html());

    }

  </SCRIPT>
</head>

<body>
<P align=center><INPUT onclick=save() type=button value=保存>
  <input id="name" type="text" value=""/><input id="value" type="text" value=""/>
  <INPUT onclick=create() type=button value=新建></P>
<TABLE id='oTable' align='center' border='1' onmousedown="onselect()">
  <TBODY>
    <TR id=tr1>
      <%--<TD style="display:none;">1</TD>--%>
      <TD>1</TD>
      <TD>颜色1</TD>
      <TD>单选属性</TD>
      <td>test1..  :  黑色1  <INPUT onclick='del()' type='button' value='delete'><br/>
          test2..  :  黑色2 <INPUT onclick='del()' type='button' value='delete'><br/>
          test3..  :  黑色3 <INPUT onclick='del()' type='button' value='delete'><br/>
      </td>
      <TD><INPUT onclick='moveUp(this)' type='button' value='up'></TD>
      <TD><INPUT onclick='moveDown(this)' type='button' value='down'></TD>
    </TR>
    <TR id=tr2>
      <%--<TD style="display:none;">2</TD>--%>
      <TD>2</TD>
      <TD>颜色2</TD>
      <TD>单选属性2</TD>
      <td>test..2 : 黑色2<INPUT onclick='del()' type='button' value='delete'><br/></td>
      <TD><INPUT onclick='moveUp(this)' type='button' value='up'></TD>
      <TD><INPUT onclick='moveDown(this)' type='button' value='down'></TD>
    </TR>
    <TR id=tr3>
      <%--<TD style="display:none;">3</TD>--%>
      <TD>3</TD>
      <TD>颜色3</TD>
      <TD>单选属性3</TD>
      <td>test..3 : 黑色3<INPUT onclick='del()' type='button' value='delete'><br/></td>
      <TD><INPUT onclick='moveUp(this)' type='button' value='up'></TD>
      <TD><INPUT onclick='moveDown(this)' type='button' value='down'></TD>
    </TR>
    <TR id=tr4>
      <%--<TD style="display:none;">4</TD>--%>
      <TD>4</TD>
      <TD>颜色4</TD>
      <TD>单选属性4</TD>
      <td>
        <%--<ul style="list-style-type:none">--%>
          <li style="list-style-type:none">苹果<INPUT onclick='del(this)' type='button' value='delete'></li>
          <li style="list-style-type:none">香蕉<INPUT onclick='del(this)' type='button' value='delete'></li>
        <!--</ul>-->
      </td>
      <TD><INPUT onclick='moveUp(this)' type='button' value='up'></TD>
      <TD><INPUT onclick='moveDown(this)' type='button' value='down'></TD>
    </TR>
  </TBODY>
</TABLE>
</body>
</html>

 


 

posted @ 2013-03-22 22:00  Jevo  阅读(345)  评论(0编辑  收藏  举报