我已经成功地使链接可以点击,但我如何让他们再次恢复到无法点击状态?
HTML
<div id="links">
http://google.com <br>
http://facebook.com <br>
http://youtube.com
</div>
<button>Toggle!</button>
的JavaScript
$.fn.replaceUrl = function() {
var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
this.each(function() {
$(this).html(
$(this).html().replace(regexp,'<a href="$1">$1</a>')
);
});
return $(this);
}
$('button').click(function(){
$('div').replaceUrl();
});
答案 0 :(得分:3)
检查这个小提琴:http://jsfiddle.net/2ttWS/
代码:
$.fn.replaceUrl = function() {
if($(this).find('a').length > 0) {
$(this).find('a').each(function() {
$(this).replaceWith($(this).text());
});
}
else {
var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
this.each(function() {
$(this).html(
$(this).html().replace(regexp, '<a href="$1">$1</a>'));
});
}
return $(this);
}
答案 1 :(得分:0)
您可以使用:
$.fn.removeHyperlink = function() {
var regexp = /<\/?a.*?>/gi;
this.each(function() {
$(this).html(
$(this).html().replace(regexp,'')
);
});
linksShown = false;
return $(this);
}
这是working example。 这不是先进的,因此它可以打破一些复杂的链接,但应该适用于所有正常情况。
答案 2 :(得分:0)
试试这个
$.fn.replaceUrl = function() {
var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
this.each(function()
{
if(($(this).html()).indexOf("href")!= -1)
{
var tx = ($(this).html()).split("</a>");
var tmp="";
for(var i=0;i<tx.length-1;i++)
{
if((tx[i].indexOf("href")!=-1)&&(tx[i].indexOf("<br>")==-1))
tmp+=tx[i].split(">")[1]+" <br>";
else
tmp+=tx[i].split(">")[2]+" <br>";
}
$(this).html(tmp)
}
else
{
$(this).html(
$(this).html().replace(regexp,'<a href="$1">$1</a>')
);
}
});
return $(this);
}
$('button').click(function(){
$('div').replaceUrl();
});