jQuery:replace如果此HREF包含



我想使用jQuery将一个附属链接替换为另一个。我想找到redirect.affiliatelink1.com开始并用api.affiliatelink2.com替换的所有链接

jQuery(document).ready(function($) {
$('.post-body-inner a').each(function() {
if ($(this).is('[href$=redirect.affiliatelink1.com]')) {
$(this).attr('href', 'https://api.affiliatelink2.com');
}
});
});

您的代码中有几个问题。首先,属性选择器中的$=用于"以"结尾的匹配。要在属性值的开头进行匹配,请使用^=

其次,您需要替换现有的值,而不是仅用新的URL覆盖整个内容。

最后,您可以通过向attr()提供一个函数来简化逻辑,该函数针对所有选定的a元素执行,而不是显式的each()循环。

说到这里,试试这个:

jQuery($ => {
$('.post-body-inner a').attr('href', (i, h) => h.replace('https://redirect.affiliatelink1.com', 'https://api.affiliatelink2.com'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="post-body-inner">
<a href="https://redirect.affiliatelink1.com/foo">Foo</a>
</div>

最新更新