由于IE中tbody不支持innerHTML,打算使用替换的方法来实现,因此要将<tbody>匹配出来,请正则达人指点:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
function $(ID) {return document.getElementById(ID);}
/*获取父节点*/
/*$p($("id"),"DIV")*/
function $p(id,t){
for(var i=0,n=id;n=n.parentNode;i++){
if(n.tagName==t){return n}
if(n==document.documentElement){return -1;}
}
}
function _tt() {
var str = '<tr><td>666</td></tr>';
var obj = $p($("fieldExt"),"DIV");
var re2 = /<TBODY[^>]*ID="fieldExt\1[^>]*>[\s\S]*<\/TBODY>/ig;
obj.innerHTML = obj.innerHTML.replace(new RegExp(re2),'<tbody id="fieldExt">'+str+'</tbody>');}
</script>
<BODY>
<div id="text1">
<table>
<tbody id="fieldExt"><tr><td>123</td></tr></tbody>
<tr><td>456</td></tr>
</table></div>
<button onclick="_tt();">替换</button>
</BODY>
</HTML>
上例是要将<tbody id="fieldExt"><tr><td>123</td></tr></tbody>替换成<tbody id="fieldExt"><tr><td>666</td></tr></tbody>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
function $(ID) {return document.getElementById(ID);}
/*获取父节点*/
/*$p($("id"),"DIV")*/
function $p(id,t){
for(var i=0,n=id;n=n.parentNode;i++){
if(n.tagName==t){return n}
if(n==document.documentElement){return -1;}
}
}
function _tt() {
var str = '<tr><td>666</td></tr>';
var obj = $p($("fieldExt"),"DIV");
var re2 = /<TBODY[^>]*ID="fieldExt\1[^>]*>[\s\S]*<\/TBODY>/ig;
obj.innerHTML = obj.innerHTML.replace(new RegExp(re2),'<tbody id="fieldExt">'+str+'</tbody>');}
</script>
<BODY>
<div id="text1">
<table>
<tbody id="fieldExt"><tr><td>123</td></tr></tbody>
<tr><td>456</td></tr>
</table></div>
<button onclick="_tt();">替换</button>
</BODY>
</HTML>
上例是要将<tbody id="fieldExt"><tr><td>123</td></tr></tbody>替换成<tbody id="fieldExt"><tr><td>666</td></tr></tbody>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
function $(ID) {return document.getElementById(ID);}
/*获取父节点*/
/*$p($("id"),"DIV")*/
function $p(id,t){
for(var i=0,n=id;n=n.parentNode;i++){
if(n.tagName==t){return n}
if(n==document.documentElement){return -1;}
}
}
function _tt() {
var str = '<tr><td>666</td></tr>';
var obj = $p($("fieldExt"),"DIV");
var re2 = /<(tbody)[^>]*id="fieldExt[^>]*>[\s\S]*?<\/\1>/ig;
obj.innerHTML = obj.innerHTML.replace(
new RegExp(re2),
'<tbody id="fieldExt">'+str+'</tbody>');}
</script>
<BODY>
<div id="text1">
<table>
<tbody id="fieldExt"><tr><td>123</td></tr></tbody>
<tr><td>456</td></tr>
</table></div>
<button onclick="_tt();">替换</button>
</BODY>
</HTML>
加这个\1是神马意思?,,,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script>
function $(ID) {return document.getElementById(ID);}
/*获取父节点*/
/*$p($("id"),"DIV")*/
function $p(id,t){
for(var i=0,n=id;n=n.parentNode;i++){
if(n.tagName==t){return n}
if(n==document.documentElement){return -1;}
}
}
function _tt() {
var str = '<tr><td>666</td></tr>';
var obj = $p($("fieldExt"),"DIV");
var re2 = /(<TBODY[^>]*?ID="fieldExt[^>]*>)[\s\S]*?(?=<\/TBODY>)/ig;
obj.innerHTML = obj.innerHTML.replace(re2,function(match,g1){
return g1+str;
});
}
</script>
<BODY>
<div id="text1">
<table>
<tbody id="fieldExt"><tr><td>123</td></tr></tbody>
<tr><td>456</td></tr>
</table></div>
<button onclick="_tt();">替换</button>
</BODY>
</HTML>
<script>
function $(ID) {return document.getElementById(ID);}
function _tt() {
var td = $("fieldExt").getElementsByTagName('tr')[0].getElementsByTagName('td')[0];
td.innerHTML = "666";
}
</script>
代替我之前的正则。
var newNode = document.createElement("td");
newNode.innerHTML = "666";
var newNode1 = document.createElement("tr");
newNode1.appendChild(newNode);
var tbdy = $("fieldExt");
tbdy.replaceChild(newNode1,tbdy.firstChild)
}