我的页面上有一个链接:
<li class="jump"><a href="http://example.com/#about">About Me</a></li>
我想使用jQuery删除.jump类中任何URL的“http://example.com/”部分。你能用最简单的代码指出我正确的方向吗?我希望代码在哈希之前删除任何内容,如果可能的话,不要在jQuery代码中指定URL(例如删除http://example.com/)。
谢谢你!答案 0 :(得分:5)
您可以使用:
1).each()
迭代所有锚点
2)在#
出现时拆分当前href并使用第二个数组元素
3)将新的href与前面的#
连接起来并设置新的href
$('.jump a').each(function(){
$(this).attr('href','#'+$(this).attr('href').split('#')[1]);
});
答案 1 :(得分:0)
我能想到的最简单的方法是使用锚点字符#
作为分隔符来分割URL:
var url = $(".jump").attr("href"); // "http://example.com/#about"
var split_url = url.split("#");
var after_hash = split_url[1];
您的after_hash
变量现在应包含值:“about”。如果要将其重新插入href
属性,则需要将锚字符重新添加到此值。
由于我觉得您打算在多个网址上使用此功能,我建议将此代码放入一个函数中并在需要时调用。
答案 2 :(得分:0)
您可以使用substring
和lastIndexOf
。
$(".jump a").each(function() {
var $this = $(this),
href = $this.attr("href");
$this.attr("href", href.substring(href.indexOf("#")));
});
答案 3 :(得分:0)
以下是我将如何使用jQuery:
$(".jump a").each(function() {
var newHref = $(this).attr("href").replace("http://example.com/", "");
$(this).attr("href", newHref);
});