解决方案 »
- EXT高手进
- JQuery 在页面加载完也就是$(document).ready(fn)函数里直接调用一个A标签的click事件为什么没效果~~?
- 求教关于Jquery的ul li的分页
- 提问,手工添加cell后,如何隐藏cell中的<td 控件,style='display:none'不生效
- js 无法更换图片
- jquery如何遍历dom对象
- 研究了一天,还是不知道错在那里?还请高手帮忙,谢谢!
- 在线急等~~JS偷懒函数出事了~
- 如何给两个select 付乡相同的选项
- 怎样使得一个层可以呗随意拖动?
- 用了图片滚动文本框光标闪动速度过快怎么解决呀
- json格式数据如何显示在fusionchart中
var newstr = str.replace(reg, "$1");
alert(newstr);
//输出:<p><a href="0">主页</a>><a href="A101">新页面1</a><a href="A101">新页面1</a></p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/\/+/g, '');
as[i].setAttribute('href', href);
}
</script>
</body>
</html>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/.*\/+/g, '');
as[i].setAttribute('href', href);
}
</script>
</body>
</html>
三楼正确理解我意图:是javascript字符串操作,不是dom操作。
我自己又写了一个,不知道考虑是否周全,望各位大大指点。 var htmlContent = /'<p><a href="0">主页</a>&gt;<a href="A101">新页面1</a><a href="aa/A101">新页面1</a><a href="http://www.abc.com/aa/A101">新页面1</a></p>/ig
var pattern = /(href=")([^"]*)(?=\/)\/(.+?)(")/ig;
htmlContent = htmlContent.replace(pattern,"$1$3$4");
var href = "aa/bb/cc/dd/A101";
var arr = href.split("/");
href = arr[arr.length-1];
var str=/href="[^"]*"/gi;
str1=str.lastIndexOf("/");
str2=str.substring(str+1);
str=str.replece(/(href=")[^"]*"/gi,"&1str2");
var reg=/(<a[^>]*?href=(['\"\s]?))([^'\"]+)\/(?=[^\/]+\2)/gi;
html=html.replace(reg,'$1');
到底是我不对题,还是你根本没看别人的代码呢?
不就去除/前面的吗,难道我这样就不行?
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>>
<a href="A101">新页面1</a>
<a href="aaa/A101">新页面1</a>
<a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
var arr = href.split("/");
href = arr[arr.length-1];
as[i].setAttribute('href', href);
}
for(var i = 0; i < as.length; i++){
console.log(as[i].getAttribute('href'));
}
</script>
</body>
</html>就算你全不是dom,是字符串,你不能自己转换一下吗?[code=HTML]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cn">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title></title>
</head>
<body>
<script type="text/javascript">
var str = '<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>';
var obj = document.createElement("div");
obj.innerHTML = str;
var as = obj.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
var arr = href.split("/");
href = arr[arr.length-1];
as[i].setAttribute('href', href);
}
for(var i = 0; i < as.length; i++){
console.log(as[i].getAttribute('href'));
}
</script>
</body>
</html>技术是给人服务的,不要一味的追求技术,能用简单的方法就可以用简单的,再说你用正则来replace那么多的字符串,效率不知道有多慢。[/code]
var linkElments = str.match(/<a\s+.*?<\/a>/g);
var reg = /(<a\s+(?:[^\<\>]+\s+)*?href=)([\'\"])(.+?)(\2.*?\>)/ig;
str = str.replace(reg, function(){
var args = arguments;
args[3] = args[3].replace(/^.*?\/+(?=[^\/]*$)/, "");
return args[1]+args[2]+args[3]+args[4];
});
alert(str);
var elem_buff = document.createElement('div');
elem_buff.innerHTML = str;
var as = elem_buff.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/^.*?\/+(?=[^\/]*$)/, '');
as[i].setAttribute('href', href);
}
alert(elem_buff.innerHTML);