如果href是某个url,则替换



正在寻找一种方法来删除url的一部分,然后将其全部放回一起。

例如,如果站点https://example.com/ko/xxx/xxxx

我想删除"ko"https://example.com/xxx/xxxx

我还认为我需要循环浏览这些项目,因为它正在检查链接是否具有类名"int tooltip">

var ko_link_url = $(".int-tooltip");
var ko_link_url_href = ko_link_url.attr("href");
var split = ko_link_url_href.split("/");
ko_link_url_href = ko_link_url_href.split("/");
ko_link_url_href = ko_link_url_href[3];
if (ko_link_url_href == "ko") {
ko_link_url_href.replace(split[3], "");
}

我认为这比需要的要复杂一些——只需搜索https://example.com/ko/并替换为https://example.com/。使用.each循环元素。

$('.int-tooltip').each(function() {
this.href = this.href.replace('https://example.com/ko/', 'https://example.com/');
});

如果我理解正确,您希望找到以https://example.com/ko/开头的int-tooltiphref类的所有锚点,并删除ko部分。

$("a[href^='https://example.com/ko/'].int-tooltip").attr("href", (_, href) =>
href.replace("https://example.com/ko/", "https://example.com/")
);

$("a[href^='https://example.com/ko/'].int-tooltip").attr("href", (_, href) =>
href.replace("https://example.com/ko/", "https://example.com/")
);
$("pre").text($("p").html());
p { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js"></script>
<p>
<a href="https://example.com/ko/xxx/xxxx">No class on this one</a>
<a href="https://example.com/ko/xxx/xxxx" class="int-tooltip">Change this one</a>
<a href="https://example.com/ok/xxx/xxxx" class="int-tooltip">No "ko"</a>
</p>
<pre></pre>

考虑以下内容。

$(function() {
var ko_link_url_href = "https://example.com/ko/xxx/xxxx";
var urlParts = ko_link_url_href.split("/");
$.each(urlParts, function(i, el) {
if (el == "ko") {
urlParts.splice(i, 1);
}
});
var link_url_href = urlParts.join("/");
console.log(link_url_href);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

这会根据/字符将URL拆分为一个数组。然后,您可以迭代数组的每个部分并检查值。如果找到它,可以使用.splice()将其从阵列中删除。您可以使用/字符将零件连接回去。

最新更新