你可以这样
b.htm
==========
<script>
parent.addRow(document.getElementById("tab2").getElementsByTagName("tbody")[0].children[0].children[0].innerHTML);
</script>a.htm
=========
<script language="javascript">
function createRow()
{
document.getElementById("genRow").src='b.htm';
}
function addRow(trObj)
{
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0].children[0].children[0];
//t.appendChild(trObj);
t.insertAdjacentHTML("beforeEnd","<br>"+trObj);
}
</script>
b.htm
==========
<script>
parent.addRow(document.getElementById("tab2").getElementsByTagName("tbody")[0].children[0].children[0].innerHTML);
</script>a.htm
=========
<script language="javascript">
function createRow()
{
document.getElementById("genRow").src='b.htm';
}
function addRow(trObj)
{
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0].children[0].children[0];
//t.appendChild(trObj);
t.insertAdjacentHTML("beforeEnd","<br>"+trObj);
}
</script>
<head>
<title>File A</title>
</head><body>
<input type="button" value="Add Row" onclick="addRow()" />
<table id="tab1">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table>
<iframe id="genRow" style="display:none" src=""></iframe>
<script language="javascript">
function addRow()
{
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0];
var r = t.insertRow(t.rows.length);
var c = document.createElement("td");
r.appendChild(c); try{
document.getElementById("ihRow").childNodes[0].childNodes[0].onchange=function(){}
document.getElementById("ihRow").setAttribute("id","");
}catch(e){}
var trObj = t.rows[0].cloneNode(true);
trObj.setAttribute("id","ihRow");
t.insertBefore(trObj,r); t.removeChild(r);
}
</script>
</body>
</html>
<head>
<title>File A</title>
</head><body>
<input type="button" value="Add Row" onclick="addRow()" />
<table id="tab1">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table>
<iframe id="genRow" style="display:none" src=""></iframe>
<script language="javascript">
function addRow()
{
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0];
var r = t.insertRow(t.rows.length);
var c = document.createElement("td");
r.appendChild(c); var trObj = t.rows[0].cloneNode(true);
t.insertBefore(trObj,r); t.removeChild(r);
}
</script>
</body>
</html>
是不是从别的页面返回的就不行啊? 我这边老是报"invalid argument"错误
<html>
<head>
<title>File A</title>
</head><body>
<input type="button" value="Add Row" onclick="addRow()" />
<table id="tab1">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table><table id="tab2" style="display:none">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table>
<script language="javascript">
function addRow()
{
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0];
var r = t.insertRow(t.rows.length);
var tmp = document.createElement("td");
r.appendChild(tmp);
var trObj = document.getElementById("tab2").getElementsByTagName("tbody")[0].rows[0];
t.insertBefore(trObj, r);
t.removeChild(r);
}
</script>
</body>
</html>
=========================================
如上代码, 从另一个table里复制过来, 第一次可以, 再点一次就玩不转了:(
a.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>File A</title>
</head><body>
<input type="button" value="Add Row" onclick="createRow()" />
<table id="tab1">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table><table id="tab2" style="display:none">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table>
<iframe id="genRow" style="display:none" src=""></iframe>
<script language="javascript">
function createRow()
{
document.getElementById("genRow").src='b.htm';
}
function addRow(trObj)
{
alert(trObj.children[0].innerHTML);
var t = document.getElementById("tab1").getElementsByTagName("tbody")[0];
var r = t.insertRow(t.rows.length);
var tmp = document.createElement("td");
r.appendChild(tmp); t.insertBefore(trObj, r);
t.removeChild(r);
}
</script>
</body>
</html>b.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>File B</title>
</head><body>
<table id="tab2">
<tr><td><select onchange="alert('a')"><option>a</option><option>b</option></select></td></tr>
</table><script>
var tmp = document.getElementById("tab2").getElementsByTagName("tbody")[0].rows[0].cloneNode(true);
parent.addRow(tmp);
</script>
</body>
</html>报"Invalid argument"错误
{
var t = document.getElementById("tab1")
var r = t.insertRow(t.rows.length);
var c = r.insertCell(-1)
c.innerHTML=trObj.children[0].innerHTML
}
var t = document.getElementById("tab1")
var r = t.insertRow(t.rows.length);
for (var i = 0, n = trObj.children.length; i < n; i++)
{
var c = r.insertCell(i);
c.innerHTML = trObj.children[i].innerHTML;
}