切换链接以使可点击/不可点击

时间:2012-01-10 12:43:59

标签: javascript jquery toggle

我已经成功地使链接可以点击,但我如何让他们再次恢复到无法点击状态?

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();
});

http://jsfiddle.net/6Zvs6/

3 个答案:

答案 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();
});