我想使用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>