<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title><script>
function modify(tar,ona)
{
  if(window.event.srcElement!=tar){
                return;
            };
            var o = document.createElement("input");
            var str = tar.innerHTML;
            tar.innerHTML = "";
            o.name = ona;
            o.type = "text";
            o.size = "13";
            o.value = str;
            o.onblur = function(){
                tar.innerHTML = this.value;
            };
            tar.appendChild(o);
            o.select();
}
</script>
</head>
<body leftmargin="0" topmargin="0"><table class="tableBorder" width="100%" border="0" cellspacing="1" bgcolor="#eff0eb">
<tr bgcolor="#f7f7f7">
<td width="12%" height="30" align="right" bgcolor="#FFFFFF">年级库:</td>
<td width="87%" height="30" bgcolor="#FFFFFF"><input type="checkbox" name="NJid" value="小学" onClick='chkbox(this,"tb")'>小学 <input type="checkbox" name="NJid" value="初中" onClick='chkbox(this,"tb")'>初中 <input type="checkbox" name="NJid" value="高中" onClick='chkbox(this,"tb")'>高中
</td>
</tr>
<tr bgcolor="#f7f7f7">
<td width="12%" height="30" align="right" bgcolor="#FFFFFF">科目库:</td>
<td width="87%" height="30" bgcolor="#FFFFFF">
<input type="checkbox" name="KMid" value="语文">语文 <input type="checkbox" name="KMid" value="数学">数学 <input type="checkbox" name="KMid" value="英语">英语</td>
</tr></table>
<table border="1" width="100%">
<tr>
<td><table id="tb"></table></td>
</tr>
</table>
-----------------------------------------------------------------------------------------------------------------------------------------<br>
假如当年级库中选择“小学”,则“表格一”出现“小学”及文本框;当再选择科目库中的“语文”等时,则“表格一”出现“语文”和文本框等的信息。
<p>假如当年级库中选择“小学”和“中学”,则“表格一”出现“小学”及文本框和“中学”及文本框两行;当再选择了科目库中“语文”时,小学和中学两行右边单元格同时出现“语文”和文本框的信息。 <p>
当年级库中的CHECKED=FALSE则,自动删除该行<br>
最终效果如下表格。</p>
<p>假如以上年级库选择了“小学”和“高中”,科目库选择了“语文”“数学”,我想实现的内容如下图:<br>
-----------------------------------------------------------------------------------------------------------------------------------------<br>表格一
<br>
<table border="1" width="100%">
<tr>
<td width="664">小学 <input type="text" name="rs" value="人数"></td>
<td>语文<input type="text" name="sl" value="数量"><p>数学<input type="text" name="sl" value="数量"></td>
</tr>
<tr>
<td>高中<input type="text" name="rs" value="人数"></td>
<td>语文<input type="text" name="sl" value="数量"><p>数学<input type="text" name="sl" value="数量"></td>
</tr>
</table>
</body>
</html>
<SCRIPT LANGUAGE="JavaScript">
function chkbox(obj,id)
{if(obj.checked==true)
  additem(id);
  else
  deleteitem(obj,id);}
var cellNum=0
function additem(id){
var row,cell,str;
row = document.getElementById(id).insertRow();
if(row != null ){
   cellNum++
   cell = row.insertCell();
   str="<input type='text' name='text"+ cellNum +"' value='text"+ cellNum +"'><input type='button' value='删除' onclick='deleteitem(this,\""+id+"\")'>"
   cell.innerHTML=str;
}
}
function deleteitem(obj,id){
cellNum--
var rowNum,curRow;
curRow = obj.parentNode.parentNode;
rowNum = document.getElementById(id).rows.length - 1;
document.getElementById(id).deleteRow(curRow.rowIndex);
}
</script>

解决方案 »

  1.   

    这个意思?jquery的,楼主参考下<!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <style type="text/css">
    td {
    padding:4px;
    }
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
    <table border="1">
    <tr>
    <td>年级库</td>
    <td>小学<input type="checkbox" name="nj" /></td>
    <td>初中<input type="checkbox" name="nj" /></td>
    <td>高中<input type="checkbox" name="nj" /></td>
    </tr>
    <tr>
    <td>科目库</td>
    <td>语文<input type="checkbox" name="km" /></td>
    <td>数学<input type="checkbox" name="km" /></td>
    <td>英语<input type="checkbox" name="km" /></td>
    </tr>
    </table>
    表格一
    <table border="1">
    <thead>
    <tr>
    <td>年级</td>
    <td>科目</td>
    </tr>
    </thead>
    <tbody id="tbody">

    </tbody>
    </table>
    <script>
    var $tb = $('#tbody');
    $(':input[name=nj]').click(function(){
    if( !$('#tbody tr[index='+$(this).parent().text()+']').length ){
    $('<tr index="'+$(this).parent().text()+'"><td><input value="'+$(this).parent().text()+'" /></td><td></td></tr>').appendTo($tb);
    }else{
    $('#tbody tr[index='+$(this).parent().text()+']').remove();
    }
    })
    $(':input[name=km]').click(function(){
    var t = this;
    if( !$('#tbody tr').length ){
    alert('请先选择年级');
    }else{
    if( !$('#tbody td p[index='+$(this).parent().text()+']').length ){
    $('#tbody tr').each(function(){
    $(this).find('td:eq(1)').append($('<p index="'+$(t).parent().text()+'"><input value="'+$(t).parent().text()+'"></p>'));
    })
    }else{
    $('#tbody p[index='+$(this).parent().text()+']').remove();
    }
    }
    })
    </script>
    </body>
    </html>
      

  2.   

    楼主用的JS里有很多错误, insertRow,deleteRow都没有参数。把楼主你的代码少做修改:参考如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title><script>
    function modify(tar,ona)
    {
      if(window.event.srcElement!=tar){
      return;
      };
      var o = document.createElement("input");
      var str = tar.innerHTML;
      tar.innerHTML = "";
      o.name = ona;
      o.type = "text";
      o.size = "13";
      o.value = str;
      o.onblur = function(){
      tar.innerHTML = this.value;
      };
      tar.appendChild(o);
      o.select();
    }
    </script>
    </head>
    <body leftmargin="0" topmargin="0"><table class="tableBorder" width="100%" border="0" cellspacing="1" bgcolor="#eff0eb">
    <tr bgcolor="#f7f7f7">
    <td width="12%" height="30" align="right" bgcolor="#FFFFFF">年级库:</td>
    <td width="87%" height="30" bgcolor="#FFFFFF"><input type="checkbox" name="NJid" value="小学" onClick='chkbox(this,"tb")'>小学 <input type="checkbox" name="NJid" value="初中" onClick='chkbox(this,"tb")'>初中 <input type="checkbox" name="NJid" value="高中" onClick='chkbox(this,"tb")'>高中
    </td>
    </tr>
    <tr bgcolor="#f7f7f7">
    <td width="12%" height="30" align="right" bgcolor="#FFFFFF">科目库:</td>
    <td width="87%" height="30" bgcolor="#FFFFFF">
    <input type="checkbox" name="KMid" value="语文">语文 <input type="checkbox" name="KMid" value="数学">数学 <input type="checkbox" name="KMid" value="英语">英语</td>
    </tr></table>
    <table border="1" width="100%">
    <tr>
    <td><table id="tb"></table></td>
    </tr>
    </table>
    -----------------------------------------------------------------------------------------------------------------------------------------<br>
    假如当年级库中选择“小学”,则“表格一”出现“小学”及文本框;当再选择科目库中的“语文”等时,则“表格一”出现“语文”和文本框等的信息。
    <p>假如当年级库中选择“小学”和“中学”,则“表格一”出现“小学”及文本框和“中学”及文本框两行;当再选择了科目库中“语文”时,小学和中学两行右边单元格同时出现“语文”和文本框的信息。 <p>
    当年级库中的CHECKED=FALSE则,自动删除该行<br>
    最终效果如下表格。</p>
    <p>假如以上年级库选择了“小学”和“高中”,科目库选择了“语文”“数学”,我想实现的内容如下图:<br>
    -----------------------------------------------------------------------------------------------------------------------------------------<br>表格一
    <br>
    <table border="1" width="100%">
    <tr>
    <td width="664">小学 <input type="text" name="rs" value="人数"></td>
    <td>语文<input type="text" name="sl" value="数量"><p>数学<input type="text" name="sl" value="数量"></td>
    </tr>
    <tr>
    <td>高中<input type="text" name="rs" value="人数"></td>
    <td>语文<input type="text" name="sl" value="数量"><p>数学<input type="text" name="sl" value="数量"></td>
    </tr>
    </table>
    </body>
    </html>
    <SCRIPT LANGUAGE="JavaScript">
    function chkbox(obj,id)
    {if(obj.checked==true)
      additem(id);
      else
      deleteitem(obj,id);}
    var cellNum=0
    function additem(id){
    var leng,row,cell,str;
    leng=document.getElementById(id).rows.length;
    row = document.getElementById(id).insertRow(leng);
    if(row != null ){
      cellNum++
      cell = row.insertCell(0);
      str="<input type='text' name='text"+ cellNum +"' value='text"+ cellNum +"'><input type='button' value='删除' onclick='deleteitem(this,\""+id+"\")'>"
      cell.innerHTML=str;
    }
    }
    function deleteitem(obj,id){
    cellNum--
    var rowNum,curRow;
    curRow = obj.parentNode.parentNode;
    rowNum = document.getElementById(id).rows.length - 1;
      if(rowNum>0){
     document.getElementById(id).deleteRow(rowNum);
      }
    }
    </script>
      

  3.   

    看看这个示例:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>新闻滚动</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function(){

    //级别选择框
    $("#table1 tr:eq(0) td input:checkbox").click(function(){
    if(this.checked==true){
    var trID = "tr_"+$(this).attr("id"); //行id

    //新增行,注意行id
    $("#table2").append("<tr id='"+trID+"'><td>"+$(this).val()+":<input type='text' name='jibie_val' /> </td><td></td></tr>");

    //新增级别行前, 如果有些科目已选择,则要添加
    var $checkd = $("#table1 tr:eq(1) td input:checkbox:checked"); //获取已选择的科目
    if($checkd.length>0){ //如果有科目被选中,循环加到第二个单元格
    $checkd.each(function(){
    $("#table2 #"+trID+" td:odd").append("<div class='div_"+$(this).attr("id")+"'>"+$(this).val()+":<input type='text' name='kemu_val'/></div>");
    });

    }

    }
    else{
    $("#table2 #tr_"+$(this).attr("id")).remove();}
    });

    //科目选择框
    $("#table1 tr:eq(1) td input:checkbox").click(function(){
    if($("#table2 tr").length>0){  //只有级别有一个或以上被选择,才可以选择科目
    if(this.checked==true){
    $("#table2  tr td:odd").append("<div class='div_"+$(this).attr("id")+"'>"+$(this).val()+":<input type='text' name='"+$(this).attr("id")+"'/></div>");
    }
    else{
    $("#table2  tr td:odd").find(".div_"+$(this).attr("id")).remove();
    }
    }
    else{
    this.checked=false;
    }
    });


    $("#btn1").click(function(){
    $("#show").empty();
    $("#table2 tr").each(function(){
    var trID = $(this).attr("id");
    //alert(trID);

    if(trID.indexOf('1')>0){
    $("#show").append("小学人数:"+$(this).find("input:[name='jibie_val']").val()+"&nbsp;》》&nbsp;");
    $("input:text[name*='kemu']",this).each(function(){
    $("#show").append(getKeMu($(this).attr("name"))+"数量:"+$(this).val()+"&nbsp;&nbsp;")
    });

    $("#show").append("<br/><br/>") }else if(trID.indexOf('2')>0){
    $("#show").append("初中人数:"+$(this).find("input:[name=jibie_val]").val()+"&nbsp;》》&nbsp;");
    $("input:text[name*='kemu']",this).each(function(){
    $("#show").append(getKeMu($(this).attr("name"))+"数量:"+$(this).val()+"&nbsp;&nbsp;")
    });

    $("#show").append("<br/><br/>") }else if(trID.indexOf('3')>0){
    $("#show").append("高中人数:"+$(this).find("input:[name=jibie_val]").val()+"&nbsp;》》&nbsp;");
    $("input:text[name*='kemu']",this).each(function(){
    $("#show").append(getKeMu($(this).attr("name"))+"数量:"+$(this).val()+"&nbsp;&nbsp;")
    });

    $("#show").append("<br/><br/>")
    }else{alert(4);}


    });

    })
    function getKeMu(namestr){
    switch(namestr){
    case "kemu1":
    return "语文";
    break;
    case "kemu2":
    return "数学";
    break;
    case "kemu3":
    return "英语";
    break;
    default:
    return "";
    break;
    }
    }

    })
    </script>
    </head>
    <body>
    <input type="button" id="btn1" value="ckedadad" />
    <table class="tableBorder" width="100%" border="0" cellspacing="1" bgcolor="#eff0eb" id="table1">
        <tr bgcolor="#f7f7f7">
            <td width="12%" height="30" align="right" bgcolor="#FFFFFF">年级库:</td>
            <td width="87%" height="30" bgcolor="#FFFFFF">
    <input type="checkbox" name="NJid" value="小学" id="jibie1" >
                小学
                <input type="checkbox" name="NJid" value="初中"  id="jibie2">
                初中
                <input type="checkbox" name="NJid" value="高中"  id="jibie3">
                高中 </td>
        </tr>
        <tr bgcolor="#f7f7f7">
            <td width="12%" height="30" align="right" bgcolor="#FFFFFF">科目库:</td>
            <td width="87%" height="30" bgcolor="#FFFFFF"><input type="checkbox" name="KMid" value="语文"  id="kemu1">
                语文
                <input type="checkbox" name="KMid" value="数学" id="kemu2">
                数学
                <input type="checkbox" name="KMid" value="英语" id="kemu3">
                英语</td>
        </tr>
    </table>
    <table width="100%" id="table2" border="1" cellpadding="2" bordercolor="blue" style="border-collapse:collapse">
    </table><hr /><div id="show"></div>
    </body>
    </html>
      

  4.   

    不好意思:
    $("#table2 #"+trID+" td:odd").append("<div class='div_"+$(this).attr("id")+"'>"+$(this).val()+":<input type='text' name='kemu_val'/></div>");改为$("#table2 #"+trID+" td:odd").append("<div class='div_"+$(this).attr("id")+"'>"+$(this).val()+":<input type='text' name='"+$(this).attr("id")+"'/></div>");
      

  5.   

    @LXH060204
    谢谢大侠的帮忙,你的这个程序很适合我,但是有点小问题需要您再帮我改一改。现在的程序是在两列的情况下可以正常使用,但是如果我把整个的列数增加成3列或者4列的情况,会出现问题,不知道能否帮我改一改。谢谢