【问题标题】:Ignore image tags when converting hyperlink markup with jQuery使用 jQuery 转换超链接标记时忽略图像标签
【发布时间】:2017-03-09 21:39:20
【问题描述】:

我正在使用一个函数将所有以文本形式写出的超链接转换为实际工作的超链接。但是,该函数还针对每个 <p> 内部的 <img src="http://linktoimage.jpg"> 将它们分解为:

<img src="<a href="http://linktoimage.jpg">http://linktoimage.jpg</a>/>

这是函数,我尝试添加.not('img'),但这没有帮助,那么如何忽略所有子img-tags?

js函数:

jQuery('p').each(function(){
   jQuery(this).not('img').html( jQuery(this).html().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1">$1</a> ') );
    });

【问题讨论】:

    标签: javascript jquery html image hyperlink


    【解决方案1】:

    使用 .text() 仅获取元素 p 中的文本而不是 .html()

    $(document).ready(function(){
    $('p').each(function(){
       $(this).html( $(this).text().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1">$1</a> ') );
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <p>http://www.google.com</p>
    <p>http://www.google.com</p>
    <p>http://www.google.com</p>
    <p>http://www.google.com</p>
    <p>http://www.google.com</p>
    <p><img src="http://www.google.com"/></p>

    【讨论】:

    • 这真是太棒了!干杯。
    • 很高兴为您提供帮助
    猜你喜欢
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多