代码如下:<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
    <script language="javascript" type="text/javascript">
        function getTableObj() {
            var senderObj = window.event.srcElement;
            var tableObj = getTable(senderObj);
            var tableID = tableObj.id;
        }
        //递归方法
        function getTable(senderControl) {
            var parentObj = senderControl.parentNode;
            var a = parentObj.tagName;
            if(parentObj.tagName == "TABLE") {
                return parentObj
            }
            getTable(parentObj);
        }
    </script>
</head>
<body>
    <table id="tableContent">
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td><input type="button" value="获取table对象" onclick="getTableObj();" /></td>
        </tr>
    </table>
</body>
</html>点击行内的按钮,然后通过这个按钮获取他所在的table对象。
我写的那个递归方法有问题,返回的是undefined,请大家帮我看看。

解决方案 »

  1.   

    parentObj.tagName == "TABLE"
    这里有问题 你可以在判断前输出tagName看看是什么样的
      

  2.   


    <input type="button" value="获取table对象" onclick="getTableObj(this);" />
    function getTableObj(obj) {
                var tableObj;
                var pNode=obj.parentNode;
    while(pNode){
        if(pNode.tagName.toLowerCase()=="table"){
            tableObj = pNode;
            break;
        }
        else{
            pNode=pNode.parentNode;
        }
    }
              alert(tableObj.id);
            }
      

  3.   

    其实都差不多啊 。你改改就会了 。
    你那个方法有点毛病 ,应该是不是table就调用自己 。
    是的话就return !
      

  4.   


    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>无标题页</title>
        <script language="javascript" type="text/javascript">
            function getTableObj(e) {
                e = e || window.event;
                var senderObj = e.srcElement || e.target;
                var tableObj = getTable(senderObj);
                var tableID = tableObj.id;
                alert(tableID);
            }
            //递归方法
            function getTable(senderControl) {
                var parentObj = senderControl.parentNode;
                var a = parentObj.tagName;
                if(parentObj.tagName == "TABLE") {
                    return parentObj;
                }
                return getTable(parentObj);
            }
        </script>
    </head>
    <body>
        <table id="tableContent">
            <tr>
                <td>1</td>
                <td>2</td>
                <td>3</td>
                <td><input type="button" value="获取table对象" onclick="getTableObj(event);" /></td>
            </tr>
        </table>
    </body>
    </html>
      

  5.   


    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>无标题页</title>
        <script language="javascript" type="text/javascript">
            function getTableObj(e) {
                e = e || window.event;
                var senderObj = e.srcElement || e.target;
                var tableObj = getTable(senderObj);
                var tableID = tableObj.id;
                alert(tableID);
            }
            function getTable(senderControl) {
                var parentObj = senderControl.parentNode;
                var a = parentObj.tagName;
                if(parentObj.tagName == "TABLE") {
                    return parentObj;
                }
                return getTable(parentObj);
            }
        </script>
    </head>
    <body>
        <table id="tableContent">
            <tr>
                <td>1</td>
                <td>2</td>
                <td>3</td>
                <td><input type="button" value="获取table对象" onclick="getTableObj(event);" /></td>
            </tr>
        </table>
    </body>
    </html>
      

  6.   

    犀利,我少了个return,立刻结贴散分,多谢大家的帮助!