有一个这样的table<table id="tb">
<thead>
<tr class="tb_head2">
<td title="日期" format>
<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
</td>
<td id="td" title="用户数量" format="qianfenshu">
<a onclick="orderby('UserCount',this)" href="#">用户数量</a>
</td>
<td title="有效用户数" format="qianfenshu">
<a onclick="orderby('LiveUserCount',this)" href="#">有效用户数</a>
</td>
</tr>
</thead>
</table>我期望把<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
过滤成 日期
就去去掉超链接.我写的代码var tb = document.getElementById('tb');
var src = tb.innerHTML;
var re = /<a[^>]*?>([\w\W]+)<\/a>/gi; // 创建正则表达式模式。 src = src.replace(re, '$1');
tb.innerHTML = src;请问哪错了. 应该怎么写这个替换呢?
<thead>
<tr class="tb_head2">
<td title="日期" format>
<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
</td>
<td id="td" title="用户数量" format="qianfenshu">
<a onclick="orderby('UserCount',this)" href="#">用户数量</a>
</td>
<td title="有效用户数" format="qianfenshu">
<a onclick="orderby('LiveUserCount',this)" href="#">有效用户数</a>
</td>
</tr>
</thead>
</table>我期望把<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
过滤成 日期
就去去掉超链接.我写的代码var tb = document.getElementById('tb');
var src = tb.innerHTML;
var re = /<a[^>]*?>([\w\W]+)<\/a>/gi; // 创建正则表达式模式。 src = src.replace(re, '$1');
tb.innerHTML = src;请问哪错了. 应该怎么写这个替换呢?
解决方案 »
- javascript和html的加载与运行。关于腾讯JX的一个demo程序
- 大侠进,这两种写法效果是一样的吧?
- javascript时间延长使用
- 关于asp.net生成一个json,报文档的顶层无效。处理资源 'http://localhost:4536/temp_website/ajax/Default
- 滚动条回弹
- 实现打印功能的问题
- 简单问题,如何使iframe隐藏?
- 请大家帮忙看看我这样写为什么不对(咐源码)(事件处理问题)?
- ExtJS:我这样绑定事件为什么不可以呢?
- 请教在表格里插入一行的代码,要netscape支持的!
- 求一个判断连续字符串的正则表达式
- validate 验证框架的问题
/<a(?=.*shordate)[^>]*?>([\w\W]+?)<\/a>/gi
如果
"<a id=\"a_\" onclick=\"orderby('shordate',this)\" href=\"#\">日期</a>".replace(/<a[^>]*?>([\w\W]+)<\/a>/gi,'$1')没问题.
但是如果把那个TABLE的innerhtml做替换的时候, 就不行了.
http://zhiqiang.org/blog/it/innerhtml-2-cd-issue-dynamic-modification-table-function-of-js.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body><table id="tb">
<thead>
<tr class="tb_head2">
<td title="日期" >
<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
</td>
<td id="td" title="用户数量" >
<a onclick="orderby('UserCount',this)" href="#">用户数量</a>
</td>
<td title="有效用户数" >
<a onclick="orderby('LiveUserCount',this)" href="#">有效用户数</a>
</td>
</tr>
</thead>
</table>
<script type="text/javascript"> var tb = document.getElementById('tb');
var src = tb.innerHTML;
alert(src);
var re = /<a[^>]*>([^<>]+)<\/a>/gi; // 创建正则表达式模式。 src = src.replace(re, '$1');
alert(src);
tb.outerHTML = src; //用OUTERHTML 试试
</script>
</body>
</html>
<thead>
<tr class="tb_head2">
<td title="日期" format>
<a id="a_" onclick="orderby('shordate',this)" href="#">日期</a>
</td>
<td id="td" title="用户数量" format="qianfenshu">
<a onclick="orderby('UserCount',this)" href="#">用户数量</a>
</td>
<td title="有效用户数" format="qianfenshu">
<a onclick="orderby('LiveUserCount',this)" href="#">有效用户数</a>
</td>
</tr>
</thead>
</table><script>var str = document.getElementById("tb").innerHTML;alert(str.replace(/<\/?a[^>]*>/gi, ""));</script>
原先的innerHTML也发现在IE下不行, 本打算用$().html(src)来解决.
又多明白了一些, 感谢你这样授人以渔的方式~ 祝工作愉快.