jQuery剪切链接

时间:2010-06-14 22:23:28

标签: jquery hyperlink

以下是html

<a href="http://site.com/any/different/folders/picture_name.jpg">Go and win</a>
<a href="http://site.com/not/similar/links/some_other_name.png">Go and win</a>

如何从a href切除所有数据,picture_name.jpg除外?可以有任意长度的链接,我们必须只使用从上一个/到最后"的值

如果当前链接的alttitle相等,那么任何人都知道最短的比较方法吗?

感谢。

5 个答案:

答案 0 :(得分:5)

如果您想分别将href更改为picture_name.jpgsome_other_name.png,可以将功能传递给.attr()并使用.lastIndexOf() / {{ 3}},像这样:

$("a").attr('href', function(i, href) {
  return href.substring(href.lastIndexOf('/') + 1);
});

.substring()


或者,如果你使用的是.each(),你可以获得/使用这样的值:

$("a").each(function() {
  var new_href = this.href.substring(this.href.lastIndexOf('/') + 1);
  //use it, e.g.: alert(new_href);
});​

You can view/play with a quick demo here

答案 1 :(得分:3)

var hrefs = $("a").map( function() {
  return this.href.substring(this.href.lastIndexOf('/')+1);
})

将返回一个数组:

["picture_name.jpg", "some_other_name.png"]

嗯,另一个问题......

  

如果当前链接的alttitle相等,那么任何人都知道最短的比较方法吗?

当然,只需比较它们

var currentLink = $("a")[0]; // whatever

if (currentLink.alt == currentLink.title) {
  // some action
} else {
  // some other action
}

答案 2 :(得分:2)

使用getElementsByTagName或getElementById获取元素后:

var parts = element.href.split('/')
last_part = parts[parts.length-1]

答案 3 :(得分:1)

var a = $("#link");
var link = a.href;
alert( link.substr(0, link.lastIndexOf("/")+1) );
alert(a.href == a.title); 

答案 4 :(得分:1)

您还可以使用正则表达式:

var url = element.href.match(/([^/]*)$/)[1];