function lastRowInfo() {
            //获取触发事件的控件
            var sender = window.event.srcElement;
            //获取该控件所在的单元格
            var trObj = sender.parentNode.parentNode;
            //获取单元格所在的行
            var tableObj = trObj.parentNode;
                    }这是脚本,1个table里有若干行,每个行有个按钮,我点击这个按钮后,通过这个按钮或者他所在的单元格 与 行 都是对的,但是 我继续用 trObj.parentNode 去获取table对象的时候,得到的貌似不是table对象,因为我打印了 tableObj.id 出现的结果不对 ,请教一下,如何按照我这种方式去获取这个table对象呢~

解决方案 »

  1.   

    function lastRowInfo() {
      //获取触发事件的控件
      var sender = window.event.srcElement;
      
      var elem = sender.parentNode;
      while(elem){
        if(elem.tagName === 'TABLE'){
          alert(elem.id);
        }
      }
    }
      

  2.   

    function lastRowInfo() {
      //获取触发事件的控件
      var sender = window.event.srcElement;
      var elem = sender.parentNode;
      while(elem){
        if(elem.tagName === 'TABLE'){
          alert(elem.id);
          break;
        }else{
          elem = elem.parentNode;
        }
      }
    }
      

  3.   

    function currentTable(){
    var evt=window.event||arguments.callee.caller.arguments[0], obj=evt.srcElement||evt.target,parent=obj.parentNode;
    while(parent&&(parent.nodeType!==1||parent.tagName.toLowerCase()!=="table")){
    parent=parent.parentNode;
    };
    return parent;
    }
      

  4.   

    楼主应考虑一个递归的方法查找parentNode,并且可以接受任意标签值,返回第一个符合要求的父亲或者加flag返回所有符合条件的父亲,没找到返回undefined之类。
    by the way 这个方法在jquery里很简单只要$jqObj.parents('table:first')