...?-6ren"> ...?-有没有更好的方法来替换/包装 h*tp://name.tld/request_url?parameter或 h*tps://name.tld/request_url?parameter某些带有 的 -6ren">
gpt4 book ai didi

javascript - replace() 或 wrap() http ://name. tld/request_url?parameter with ...?

转载 作者:行者123 更新时间:2023-11-29 18:35:34 25 4
gpt4 key购买 nike

有没有更好的方法来替换/包装 h*tp://name.tld/request_url?parameterh*tps://name.tld/request_url?parameter某些带有 <a href> 的 html 元素中的文本.

这是我的代码:

jQuery('#posts .post').each(function() {
elem = jQuery(this);
elem.html(
elem.text()
.replace(/(http?:\/\/?\S+)/g, "<a href='$1'>$1</a>")
);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="posts">
<div class="post">
Tweet text 1 http://google.com and other text.
</div>
<div class="post">
Tweet text 2 https://www.google.com and other text.
</div>
<div class="post">
Tweet text 3
</div>
<div class="post">
...
</div>
</div>

任何jQuery.wrap()替代方案也不错。

最佳答案

虽然您可以稍微简化一下,但没有更好的方法,如下所示:

jQuery('#posts .post').each( function () {
jQuery(this).html(function(i, html) {
return html.replace(/(http?:\/\/?\S+)/g, "<a href='$1'>$1</a>");
});
});

在您确定帖子不包含 HTML 时使用此方法,否则使用您已有的。

jQuery 使用 DOM 节点,而不是节点内的文本,或者更确切地说,它可以使用,因为它只是 JavaScript……但它没有为此提供很多额外的功能。 jQuery,包括 .wrap() ,专注于 DOM 操作,而不是文本。

关于javascript - replace() 或 wrap() http ://name. tld/request_url?parameter with <a href ="this">...</a>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com