本帖最后由 sky1216520 于 2011-10-11 16:30:47 编辑

解决方案 »

  1.   

    你可以给这个表格的这列都取一个同样的名字 ,就是name属性了,然后在JS中通过name来获取这列,然后再取得值就OK了
      

  2.   

    name不能改的 每行都是一个商品 scshl是SQL语句算出来的 只想通过scshl来拦截 
      

  3.   

    var tableObj = document.getElementById("tableName");
    ...//for
    tableObj.rows[i].cells[3].innerText
    ...
      

  4.   


    <table id="tableId">
        <tr><td>name</td><td>gg</td><td>dw</td><td>scshl</td><td>shl</td></tr>
        <tr><td>aa</td><td>1</td><td>10</td><td>0.00</td><td>10.00</td></tr>
        <tr><td>bb</td><td>2</td><td>20</td><td>0.00</td><td>0.00</td></tr>
        <tr><td>cc</td><td>3</td><td>30</td><td>0.00</td><td>0.00</td></tr>
        <tr><td>dd</td><td>4</td><td>40</td><td>0.00</td><td>0.00</td></tr>
        </table>
    (function(document){
         var tableEl = document.getElementById("tableId"),
         trs = tableEl.getElementsByTagName("tr"),
         fTds = trs[0].getElementsByTagName("td"),
         index = 0,
         isAllZero = true;
         for (var i = fTds.length; i--;){
         if (fTds[i].innerText === "scshl"){
         index = i;
                                    break;
         }
         }
        
         for (var i = 1, j = trs.length; i < j; i++){
         var tdEl = trs[i].getElementsByTagName("td")[index];
         if (+tdEl.innerText !== 0){
         isAllZero = false;
         break;
         }
         }
        
         if (isAllZero){
         alert("全部为零");
         }
        
         })(document)
      

  5.   

    <table>
    <tr>
    <td>name</td><td>gg</td><td>dw</td><td>scshl</td><td>shl</td>
    </tr>
    <tr>
    <td>aa</td><td>10</td><td>片</td><td>10.00</td><td>10.00</td>
    </tr>
    <tr>
    <td>bb</td><td>30</td><td>克</td><td>0.00</td><td>0.00</td>
    </tr>
    <tr>
    <td>cc</td><td>50</td><td>克</td><td>0.00</td><td>0.00</td>
    </tr></table><input type="button" value="判断" id="btn" /><script>
    document.getElementById('btn').onclick=function(){
    var _bool=false;
    var _trs=document.getElementsByTagName('tr');
    for(i=1,l=_trs.length;i<l;i++){
    var os=_trs[i].childNodes[3].innerHTML;
    if(!isNaN(os)&&os>0){ _bool=true;break;}
    }
    _bool?alert("符合要求"):alert("全为0,不符合要求");
    }</script>
      

  6.   

    抱歉,刚才代码FF不兼容。改成下面那个就可以了(function(document){
         var tableEl = document.getElementById("tableId"),
         trs = tableEl.rows,
         fTds = trs[0].cells,
         index = 0,
         isAllZero = true;
         for (var i = fTds.length; i--;){
         if (fTds[i].innerHTML === "scshl"){
         index = i;
         break;
         }
         }
        
         for (var i = 1, j = trs.length; i < j; i++){
         var tdEl = trs[i].cells[index];
         if (+tdEl.innerHTML !== 0){
         isAllZero = false;
         break;
         }
         }
        
         if (isAllZero){
         alert("全部为零");
         }
        
         })(document)
      

  7.   

    麻烦问下 7楼的liangws老师var tableEl = document.getElementById("tableId"),
    这段里的 ("tableId"), 这个是什么意思呢??谢谢了
      

  8.   

    我在表单里引用了您的代码以后 总是报错 提示缺少对象 应该是找不到这个("tableId")的原因吧 下面是我的表单里的存盘校验的代码//存盘校验
    function uf_saveCheck() {
       if ( IsSpace(DsMain.Field("jibie").Value) ) {
            alert("请货类型不能为空,是药品就选药品,是赠品就选赠品!!");
            return false
           }
       if ( IsSpace(DsMain.Field("bm").Value) ) {
            alert("请选择部门");
            return false
           }
       if (IsSpace(dssub1.Field('spid').Value)){
              alert("明细项数据不完整,请检查!");
              return false;
       }
       if ((DsMain.Field("leibie").Value) == '1' && (DsMain.Field("jibie").Value) == '药品'  ){
                var tableEl = document.getElementById("tableId"),
                    trs = tableEl.rows,
                    fTds = trs[0].cells,
                    index = 0,
                    isAllZero = true;
                for (var i = fTds.length; i--;){
                    if (fTds[i].innerHTML === "scshl"){
                        index = i;
                        break;
                    }
                }            for (var i = 1, j = trs.length; i < j; i++){
                    var tdEl = trs[i].cells[index];
                    if (+tdEl.innerHTML !== 0){
                        isAllZero = false;
                        break;
                    }
                }            if (isAllZero){
                    alert("全部为零");
                }
      }
       for (var i = 0; i < dssub1.RecordCount; i++) {
            var shl = dssub1.GetValueAt(i, 'shl');
            //var scshl= dssub1.Field('scshl').Value;
                //if ( shl < scshl ){
                //if ( dssub1.Field('shl').Value < dssub1.Field('scshl').Value){
                if(shl == 0 || shl <= 0){
                    alert("明细项第["+(i+1)+"]行小于零或修改数量小于自动生成的补货数量,请检查!");
                    return false;
            }
        }
    }
    //明细行间运算
    function uf_comput(field){
        pf_field_comput(dssub1, field, '');
    }
    //包装换算
    function uf_mx_bzhs(field){
        if(pf_bzhs_comput(dssub1,field,'shl','','') == true){
            uf_comput("shl");
        }
    }
      

  9.   

    你给table加个ID啊<table id="tableId"></table>
      

  10.   

    呵呵 JS真的不懂 我的表单里有dj_sn  也就是每行的序号 把("tableId")改成 ("dj_sn") 这样可以吗老师