1

我有一个这样的链接:

http://nl.wikipedia.org/wiki/Alexandra_Stan&sa=U&ei=UULHUIIdzPnhBOKMgPgJ&ved=0CCIQFjAA&usg=AFQjCNGyCikDkoZMnnuqGo6vjMQ6b5lZkw

我想摆脱以 '&' 开头的所有内容,所以这会给我一个干净的网址:

http://nl.wikipedia.org/wiki/Alexandra_Stan

我知道如何像这样替换href:

$('a').each(function() {
      $(this).attr("href", function(index, old) {
            return old.replace("something", "something else");
      });
});

但我不知道如何摆脱从某个角色开始的一切。

4

3 回答 3

8

您可以使用substr()andindexOf()来获取 URL 的特定部分,从 URL 字符串的开头直到遇到第一个 & 符号。

  var href = $(this).attr('href'); 
  var url = href.substr(0, href.indexOf('&')); 
于 2012-12-11T14:39:42.297 回答
1

改为使用String.prototype.split。它将一个字符串一个字符一个字符地分割成一个数组。最重要的部分是,如果缺少该字符(在您的情况下,'&'),它将把整个字符串放在第一个数组索引中。

// String.prototype.indexOf:
var href = 'http://www.noAmpersandHere.com/',
    url  = href.substr(0, href.indexOf('&'));  // ''

// String.prototype.split:    
var href = 'http://www.noAmpersandHere.com/',
    url  = href.split('&');  // ['http://www.noAmpersandHere.com/']
    url  = url[0];  // 'http://www.noAmpersandHere.com/'
于 2012-12-11T14:39:17.693 回答
0

第一:考虑参数列表以?而不是以&

您正在处理的锚元素已经解析并正确划分了整个 url。您只需要访问正确的锚属性:

https://developer.mozilla.org/en-US/docs/DOM/HTMLAnchorElement

于 2012-12-11T14:41:40.153 回答