<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,请大家帮我看看。
8 个解决方案
#1
parentObj.tagName == "TABLE"
这里有问题 你可以在判断前输出tagName看看是什么样的
这里有问题 你可以在判断前输出tagName看看是什么样的
#2
多谢帮顶,这个我看了 没问题 我是只要是table就跳出的,结果那个递归方法有问题,跳出后,还执行了几次,不知道为什么?希望能帮改改!指出问题所在!
#3
<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);
}
#4
楼上的多谢,能用递归做个吗?
#5
其实都差不多啊 。你改改就会了 。
你那个方法有点毛病 ,应该是不是table就调用自己 。
是的话就return !
#6
<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>
#7
<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>
#8
犀利,我少了个return,立刻结贴散分,多谢大家的帮助!
#1
parentObj.tagName == "TABLE"
这里有问题 你可以在判断前输出tagName看看是什么样的
这里有问题 你可以在判断前输出tagName看看是什么样的
#2
多谢帮顶,这个我看了 没问题 我是只要是table就跳出的,结果那个递归方法有问题,跳出后,还执行了几次,不知道为什么?希望能帮改改!指出问题所在!
#3
<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);
}
#4
楼上的多谢,能用递归做个吗?
#5
其实都差不多啊 。你改改就会了 。
你那个方法有点毛病 ,应该是不是table就调用自己 。
是的话就return !
#6
<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>
#7
<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>
#8
犀利,我少了个return,立刻结贴散分,多谢大家的帮助!