用jQuery截断链接

时间:2012-01-12 09:54:39

标签: jquery

我在这里的第一篇文章,但是我已经通过潜伏来学习了很多东西=)这次,我找不到问题的解决方案,虽然它看起来很容易实现。

我有一个使用Feed2JS生成的blogpost链接列表。不幸的是,作为此源的RSS源会为我不想要的链接添加锚点。我无法更改Feed,因为它是在RapidWeaver中自动生成的。

是否可以使用jQuery从url中的哈希中删除所有内容?例如:改变

http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php#unique-entry-id-31

http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php

我是jQuery的新手,还有很多需要学习的东西,所以请保持简单的答案。

的Jeroen

7 个答案:

答案 0 :(得分:1)

如果您只想截断网址,可以将其设为

var url = "http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php#unique-entry-id-31";
var index = url.indexOf('#') != -1 ? url.indexOf('#') : url.length
alert(url.substring(0,index));

<强>输出:

http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php

示例:http://jsfiddle.net/2dXXx/

答案 1 :(得分:0)

你不需要jQuery这样做,因为javascript支持window.location。

请查看此答案,了解您要执行的操作javascript window location href without hash?

答案 2 :(得分:0)

我喜欢这样做:

var a = document.createElement("a");
a.href = "http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php#unique-entry-id-31";
alert(a.protocol + "://" +  a.host + a.pathname + a.search);

http://jsfiddle.net/karim79/7pMbk/1

答案 3 :(得分:0)

当然你可以这样做:

var str = 'http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php#unique-entry-id-31';
var substr = str.split('#');
// substr[0] contains "http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php"
// substr[1] contains "unique-entry-id-31"

请注意,这是来自JavaScript API。

答案 4 :(得分:0)

您不需要使用jQuery:

function truncate(href) {
  var a = document.createElement('a');
  a.setAttribute('href', href);

  a.hash = '';
  return a.href;
}

答案 5 :(得分:0)

jQuery不需要依赖,你可以使用正则表达式,如jsFiddle

所示
var url = "http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.php#unique-entry-id-31"
console.log("base url >> " + url)    
var matcher = /(.*)#.*/.exec(url)
var truncated = matcher[1]
console.log("truncated url >> " + truncated)    

答案 6 :(得分:0)

var url = "http://www.example.com/blog/files/398e042ea42b7ee9d1678b3c53132fc3-31.phpunique-entry-id-31";

alert(url.substring(0,url.indexOf('#'))); // will give you empty string if you dont have # in the url.

所以,你可以使用

alert(url.split('#')[0]);