日期:2014-05-18  浏览次数:20426 次

郁闷,问个简单问题.........
<table   id= "t1 ">
<tr> <td> + </td> <td> 123 </td> </tr>
<tr> <td> <table   id= "t2 "> .....

知道 <table   id= "t2 "> 的ID
想得到 <table   id= "t1 "> 的ID
怎么弄?

我是这样写的

var   obj=document.getElementById(table);//table是传过来的参数
var   objnew=obj.parentElement.parentElement.parentElement.id;

可是老是提示我   无效的参数......
郁闷,没有书,上网又没查到怎么整.......


------解决方案--------------------
var obj=document.getElementById( "t2 ");//传过来的是table,怎么能做id?
var objnew=obj.parentElement.parentElement.parentElement.id;
------解决方案--------------------
要取ID做什么?
------解决方案--------------------
var obj=document.getElementById(t1);//table是传过来的参数
var tables=obj.getElementsByTagName( "table ");
var gettableid;
if(tables.length> 0)
{
gettableid=tables[0].id;
}

不过如果t1里面有多个table的话,就要根据行和列来判断了
------解决方案--------------------
呵呵,静下心来研究一下你的方式方法有没有问题。
再一个取一个对象要用
var obj=document.getElementById( "t2 ");//
不是 var obj=document.getElementById(table);//
------解决方案--------------------
var obj = document.getElementById( '节点 ');
var parent = obj.parentNode
------解决方案--------------------
其实,这个最好在你的 id 格式上做点文章,显示出层次,这样便于快速解析以及读取,如

第一个1级 table id=tbl1
第一个2级 table id=tbl1ntbl1
第而个2级 table id=tbl1ntbl2

第一个1级 table id=tbl2
第一个2级 table id=tbl2ntbl1
第而个2级 table id=tbl2ntbl2

...................

ASP.NET 自带的TreeView 就是按这样模式定义的,由 ID 形成了一个层次结构

------解决方案--------------------
试试这个:
var obj=document.getElementById(table);//table是传过来的参数
var objnew=obj.parentElement.parentElement.parentElement.parentElement.id;
多加一个 parentElement 是因为可能存在 tbody


------解决方案--------------------
来,朋友试试我的方法
var obj=document.getElementById(table);
while(obj!=null && obj!= "TABLE ")
{
obj = obj.parentElement;
}
一定是table的上一级table
------解决方案--------------------
获取id的值
document.getElementById( "id ").attribute[ "id "].value;
------解决方案--------------------
up