假设父窗口fu.htm里有一个触发赋值按钮znum事件那么在zi.htm用
<input name="zi2" type="text">   zi2   <br />     
<br />    
<input type="button" value="关闭窗口" onclick="xs();">    
<script language="javascript">
function xs(){
        window.opener.znum(document.getElementById("zi2").value,1);
window.close(); 
}
</script>
fu.htm:
<script>
var   aa=[0,0,0]function znum(n,i){
    var result = document.getElementById("he");
    var number = parseInt(n);
    if(aa[i] != number){  //子窗口值改变
if(result.value==""){
result.value=number;
}
else{
result.value=parseInt(result.value)-parseInt(aa[i]) + number;
}
        aa[i] = number;
    }
}
</script>
<a href="#" onclick="window.open('zi1.htm','','status=yes,width=200,height=200')">  子窗口1  </a>   <br />   <br />   
<a href="#" onclick="window.open('zi2.htm','','status=yes,width=200,height=200')">  子窗口1  </a>   <br />   <br />   
<a href="#" onclick="window.open('zi3.htm','','status=yes,width=200,height=200')">  子窗口1  </a>   <br />   <br />   
<input name="he" type="text" readonly="true">  he  <br />  明白吗?

解决方案 »

  1.   

    2.
    zi.html中的选择框:<input type="checkbox" name="sexCheckbox" value="idValue">    //全选
       function checkall(isChecked)
        {
            var checkboxObj = document.getElementsByName("sexCheckbox");
            for (var i = 0; i < checkboxObj.length; i++) checkboxObj[i].checked = isChecked;
        }
      

  2.   

    父窗口引用子窗口可以在父窗口中修改
    window.open('zi.htm','');

    NewWin = window.open('zi.htm', '');子窗口引用父窗口可以使用opener全选的函数可以给你一个!var status = false;function choose( form )
    {
        status = status ? false : true;    for( var i = 0; i < form.elements.length; i++ )
        {
            if( form.elements[i].type == 'checkbox' )
            {
                form.elements[i].checked = status;
            }
        }
    }用法 onclick="choose( this.form );"其他的自己做,都很忙的!
      

  3.   

    用open打开子窗体,用opener给父窗体传值。
      

  4.   

    fu.html<a href="#" onclick='zi=window.open("zi.html");'>打开子窗体</a><a href="#" onclick='window.zi.document.getElementById("zitext").value="从fu.html传来的值"'>给zi.html传值</a><input type="text" id="futext">
    zi.html<input type="text" id="zitext"><a href="#" onclick='window.opener.document.getElementById("futext").value="从zi.html传来的值"'>给fu.html传值</a>
      

  5.   

    fu.htm
    <script> function znum(n){ 
        var result = document.getElementById("he"); 
     //alert(n);   
    result.value=n; 

    </script> <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0"> 
           <tr> 
             <td align="center" height="27"> 学号 </td> 
             <td align="center"> 姓名 </td> 
             <td align="center"> 学科 </td> 
             <td align="center"> 学费 </td> 
       </tr> 
    </table> <br /> <br /> 
    <input type="submit" value="选择学生" onclick="window.open('zi.htm','')"> 
    <br /> 
    <br /> 
    总学费: 
    <input type="text" value="" id="he"> zi.htm
    <script language="javascript">   
    function   getCbxByTag() 
      { 
              var   cbx   =   document.getElementsByTagName("input"); 
        var   cbxValue=""; 
    var b="";
        for(var   i=0;i <cbx.length;i++) 
        { 
        if(cbx[i].type=="checkbox") 
        { 
          if   (cbx[i].checked) 
           {   
    cbxValue   = cbx[i].value;
    a=document.getElementById("xf"+cbxValue).innerText 
    if(b==""){
    b=a;
    }
    else{
    b=parseInt(b)+parseInt(a)
    }
            } 
    window.opener.znum(b);
        } 

        } 
       
        
    window.close();    
         
      } </script> 
      <form>
    <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0"> 
           <tr> 
             <td width="16%" height="27" align="center"> 学号 </td> 
             <td width="16%" align="center"> 姓名 </td> 
             <td width="16%" align="center"> 学科 </td> 
             <td width="16%" align="center"> 学费 </td> 
    <td width="16%" align="center"> 选择标志 (全选) </td> 
             <td width="16%" align="center"> 性别 </td> 
          </tr> 
       <tr> 
             <td align="center" height="27"> 001 </td> 
             <td align="center"> 张三 </td> 
             <td align="center"> c# </td> 
             <td align="center" id="xf001"> 500 </td> 
             <td align="center"> <input name="check" type="checkbox" id="check" value="001"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 003 </td> 
             <td align="center"> 李四 </td> 
             <td align="center"> c++ </td> 
             <td align="center" id="xf003"> 300 </td> 
             <td align="center"> <input name="check" type="checkbox" id="check" value="003"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 015 </td> 
             <td align="center"> 王五 </td> 
             <td align="center"> java </td> 
             <td align="center" id="xf015"> 200 </td> 
             <td align="center"> <input name="check" type="checkbox" id="check" value="015"> </td> 
             <td align="center"> 女 </td> 
       </tr> 
    </table> 
    <p> 
       <input name="submit" type="submit" value="提交选择" onclick="getCbxByTag();"> 
    </p> </form>
      

  6.   


    只做了第4点;看一下fu.htm和fu1.htm的不同啊;拜托高手啦!!!
      

  7.   

    关键是选择一行后把该行传父窗口啊,麻烦看一下fu.htm和fu1.htm的不同好吗?!拜托拜托!PS:全选不是问题!
      

  8.   

    fu1.htm
    的也没什么
    都定义下ID,赋值过去就行了
    然后window.opener.znum(b,c);        带2个参数传到父页
    c就是保存你选种的所有行值的代码
    同一行你使用\分开,不同行你使用,比如:c="001\张三\c#\500\男,003\李四\c++\300\男"
    然后在父页里用2个split就可以全部分开然后循环放在相对的列和行里至于怎么动态增加<tr>和值,你也搜索一下很多!
    基本做法就这些,扩展的就自己
      

  9.   

     <tr> 
             <td align="center" height="27" id="bh001"> 001 </td> 
             <td align="center" id="xm001"> 张三 </td> 
             <td align="center" id="xk001"> c# </td> 
             <td align="center" id="xf001"> 500 </td> 
             <td align="center"> <input name="check" type="checkbox" id="check" value="001"> </td> 
             <td align="center" id="xb001"> 男 </td> 
       </tr> 这样命名,然后怎么组成c="001\张三\c#\500\男,003\李四\c++\300\男" 这样应该明白吧
      

  10.   

    c=document.getElementById("bh"+cbxValue).innerText+"\"+document.getElementById("xm"+cbxValue).innerText+"\"+document.getElementById("xk"+cbxValue).innerText+"\"+document.getElementById("xf"+cbxValue).innerText+"\"+document.getElementById("xb"+cbxValue).innerText
    这个是选种一行的c
    多行的C你循环下就可以了
    应该明白了吧
      

  11.   

    能不能直接把整个行(比如:
       <tr> 
             <td align="center" height="27"> 003 </td> 
             <td align="center"> 李四 </td> 
             <td align="center"> c++ </td> 
             <td align="center"> 300 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 男 </td> 
       </tr>
    )直接从子窗口传到父窗口?(有点象document.write() )麻烦高手直接给个代码啊,偶是真不会!!谢谢!!
      

  12.   

    获取表格中的某个单元格的内容var tid=listFrame.now.rows[1].cells[2].innerHTML;listFrame是指某一窗口或者frame
    now 是表格的id 
    rows[i] 是指某一行 比如属性:length
    cells[j] 是指某一个单元格 rows[i].cells[j]表示第i行第j列
    innerHTML是指单元格的值
      

  13.   

    lz,其实楼上都很热情的帮你解答了,还是基础不行啊
    Js很重要的啊,特别是Dom方面,多看看Javascript方面的书吧,CSDN读书频道很多的,有了基础和思路就好办事了
      

  14.   

    只是在函数里自己重新组合成一行多列,或者多行多列而已
    这个你不会???
    c=document.getElementById("bh"+cbxValue).innerText+"\"+document.getElementById("xm"+cbxValue).innerText+"\"+document.getElementById("xk"+cbxValue).innerText+"\"+document.getElementById("xf"+cbxValue).innerText+"\"+document.getElementById("xb"+cbxValue).innerText 
    这个是选种一行的c 
    在这里都已经写的这么清楚了
    你不就是把tr和td分别放进去吗?
      

  15.   

    chinmo要郁闷到死了,呵呵。chinmo已经说的非常清楚了,你要是还没看明白,我劝你现在啥都别做了,好好看下书。书看不明白的的话,你改行吧。
      

  16.   


    偶也郁闷啊……不过chinmo确实不赖,呵呵……
      

  17.   


    搞了半天也不知怎么弄啊:
    "同一行你使用\分开,不同行你使用,比如:c="001\张三\c#\500\男,003\李四\c++\300\男" 
    然后在父页里用2个split就可以全部分开然后循环放在相对的列和行里 "这个是什么意思呢??
      

  18.   

    "然后在父页里用2个split就可以全部分开然后循环放在相对的列和行里"——主要是这个不会!!
      

  19.   

    看看满足没有
    fu.htm
    <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0"> 
           <tr> 
             <td align="center" height="27"> 学号 </td> 
             <td align="center"> 姓名 </td> 
             <td align="center"> 学科 </td> 
             <td align="center"> 学费 </td> 
       </tr> 
       <tbody id="tbItem"></tbody>
    </table> <br /> <br /> 
    <input type="submit" value="选择学生" onclick="window.open('zi.htm','')"> 
    <br /> 
    <br /> 
    总学费: 
    <input type="text" id="totalMoney" value=""> 
    <script type="text/javascript">
    //这个方法是提供给子页面操作该页面的
    function AddItem(Num,Name,Subject,Money)
    {
      var row=document.getElementById("tbItem").insertRow();
      var td=row.insertCell();
      td.innerHTML=Num;
      td=row.insertCell();
      td.innerHTML=Name;
      td=row.insertCell();
      td.innerHTML=Subject;
      td=row.insertCell();
      td.innerHTML=Money;
    }
    function SetTotalMoney(TotalMoney)//设置总学费
    {
      document.getElementById("totalMoney").value=TotalMoney;
    }
    </script>zi.htm
    <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" id="subTb"> 
           <tr> 
             <td width="16%" height="27" align="center"> 学号 </td> 
             <td width="16%" align="center"> 姓名 </td> 
             <td width="16%" align="center"> 学科 </td> 
             <td width="16%" align="center"> 学费 </td> 
    <td width="16%" align="center" onclick="SelAll()"> 选择标志 (全选) </td> 
             <td width="16%" align="center"> 性别 </td> 
          </tr> 
       <tr> 
             <td align="center" height="27"> 001 </td> 
             <td align="center"> 张三 </td> 
             <td align="center"> c# </td> 
             <td align="center"> 500 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 003 </td> 
             <td align="center"> 李四 </td> 
             <td align="center"> c++ </td> 
             <td align="center"> 300 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 015 </td> 
             <td align="center"> 王五 </td> 
             <td align="center"> java </td> 
             <td align="center"> 200 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 女 </td> 
       </tr> 
    </table> 
    <p> 
       <input type="button" value="提交选择" onclick="AddToParent()"/> 
    </p> 
    <script type="text/javascript">
    function SelAll()
    {
       var cb=document.getElementsByTagName("input");
       for(var i=0;i<cb.length;i++)
       {
         if(cb[i].type=='checkbox') cb[i].checked=true;
       }
    }
    function AddToParent()
    {
      var subTb=document.getElementById("subTb");
      var totalMoney=0;
      var row;
      for(var i=1;i<subTb.rows.length;i++)//注意是从1开始,省略了标题行
      {
        row=subTb.rows[i];
        if(row.cells[4].getElementsByTagName("input")[0].checked)//选中
        {
          opener.AddItem(row.cells[0].innerHTML,row.cells[1].innerHTML,row.cells[2].innerHTML,row.cells[3].innerHTML);///========
          totalMoney+=parseFloat(row.cells[3].innerHTML);
        }
      }
      opener.SetTotalMoney(totalMoney);//============
      self.close();
    }
    </script>
      

  20.   

    呵呵……谢谢showbo啦,比较不错,就差一点小问题,就是:比如第一次我点击选择学生,在子窗口选择001,然后提交,当我第二次点击选择学生,在子窗口再选择001,提交后能不能在父窗口只显示一个001呢?现在的是重复的!
      

  21.   

    <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0"> 
           <tr> 
             <td align="center" height="27"> 学号 </td> 
             <td align="center"> 姓名 </td> 
             <td align="center"> 学科 </td> 
             <td align="center"> 学费 </td> 
       </tr> 
       <tbody id="tbItem"></tbody>
    </table> <br /> <br /> 
    <input type="submit" value="选择学生" onclick="window.open('zi.htm','')"> 
    <br /> 
    <br /> 
    总学费: 
    <input type="text" id="totalMoney" value="0"><!--要给个默认值,为0--> 
    <script type="text/javascript">
    //这个方法是提供给子页面操作该页面的
    function AddItem(Num,Name,Subject,Money)
    {
      var row=document.getElementById("tbItem").insertRow();
      var td=row.insertCell();
      td.innerHTML=Num;
      td=row.insertCell();
      td.innerHTML=Name;
      td=row.insertCell();
      td.innerHTML=Subject;
      td=row.insertCell();
      td.innerHTML=Money;
    }
    function hasAdd(Num)
    {
       Num=Trim(Num);
       var tbItem=document.getElementById("tbItem");
       for(var i=0;i<tbItem.rows.length;i++)
       {
         if(Num==Trim(tbItem.rows[i].cells[0].innerHTML))
           return true;
       }
       return false;
    }
    function Trim(Msg)//去除空格的
    {
       var start=-1,end=-1;
       var i=0;
       while(i<Msg.length)
       {
         if(Msg.charAt(i)==' ')
         {
           start=i;
           i++;
         }
         else  break;
       }
       i=Msg.length-1;
       while(i>-1)
       {
         if(Msg.charAt(i)==' ')
         {
           end=i;
           i--;
         }
         else break;
       }
       if(end==-1)
         return Msg.substring(start+1);
       else
         return Msg.substr(start+1,end-start-1);    
    }
    function SetTotalMoney(TotalMoney)//设置总学费
    {
      document.getElementById("totalMoney").value=TotalMoney+parseFloat(document.getElementById("totalMoney").value);
    }
    </script><table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" id="subTb"> 
           <tr> 
             <td width="16%" height="27" align="center"> 学号 </td> 
             <td width="16%" align="center"> 姓名 </td> 
             <td width="16%" align="center"> 学科 </td> 
             <td width="16%" align="center"> 学费 </td> 
    <td width="16%" align="center" onclick="SelAll()"> 选择标志 (全选) </td> 
             <td width="16%" align="center"> 性别 </td> 
          </tr> 
       <tr> 
             <td align="center" height="27"> 001 </td> 
             <td align="center"> 张三 </td> 
             <td align="center"> c# </td> 
             <td align="center"> 500 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 003 </td> 
             <td align="center"> 李四 </td> 
             <td align="center"> c++ </td> 
             <td align="center"> 300 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 男 </td> 
       </tr> 
       <tr> 
             <td align="center" height="27"> 015 </td> 
             <td align="center"> 王五 </td> 
             <td align="center"> java </td> 
             <td align="center"> 200 </td> 
             <td align="center"> <input type="checkbox"> </td> 
             <td align="center"> 女 </td> 
       </tr> 
    </table> 
    <p> 
       <input type="button" value="提交选择" onclick="AddToParent()"/> 
    </p> 
    <script type="text/javascript">
    function SelAll()
    {
       var cb=document.getElementsByTagName("input");
       for(var i=0;i<cb.length;i++)
       {
         if(cb[i].type=='checkbox') cb[i].checked=true;
       }
    }
    function AddToParent()
    {
      var subTb=document.getElementById("subTb");
      var totalMoney=0;
      var row;
      for(var i=1;i<subTb.rows.length;i++)//注意是从1开始,省略了标题行
      {
        row=subTb.rows[i];
        if(row.cells[4].getElementsByTagName("input")[0].checked)//选中
        {
          if(!opener.hasAdd(row.cells[0].innerHTML))///
          {
            opener.AddItem(row.cells[0].innerHTML,row.cells[1].innerHTML,row.cells[2].innerHTML,row.cells[3].innerHTML);///========
            totalMoney+=parseFloat(row.cells[3].innerHTML);
          }
        }
      }
      if(totalMoney>0) opener.SetTotalMoney(totalMoney);//============
      self.close();
    }
    </script>
      

  22.   

    showbo 
    你也很有耐心
    我告诉他那么详细他都懒得自己去写,自己去学
    就想别人给答案对他没什么好处为了那点分算什么
    来这是为分而来吗??我只为学思路,学方法而来所以我也只会给他思路和方法,分析给他懒得写,那就随便他
      

  23.   

    无语……!我有把自己当作爷吗??不懂不会就不能问详细一点?并不是每个人水平都跟你一样高的,要不还会有人在这里提问吗?按照你的思路和方法我实现不了,难道这就说明我懒了?
    某些人应该学一下showbo啊!!!……
      

  24.   

    看来chinmo是误会啦!偶还真不是学程序的!只是想用JS实现这样的效果而已!!“不能低估了自己,但是也不能高估了别人!”