更改每个网址的一部分

时间:2014-09-24 19:22:27

标签: javascript jquery

网站上有一个网址列表,我需要在主网址之后切换每一个网址。

<div class="collection-name">
      <a href="http://shop.something.net/collections/100-grams/a.s.a.p." title="100 Grams">/collections/madelinetosh/a-s.a.p.</a>
    </div>
<div class="collection-name">\
      <a href="http://shop.something.net/collections/2-stitches/a.s.a.p." title="2 Stitches"><i class="check-icon"></i> 2 Stitches</a>
    </div>

在这个例子中,我需要a.s.a.p中的切换点。到a-s-a-p

我对JQ很新,所以,这是我的代码无法运作的耻辱

$("div.collection-name a").each(function(){
  console.log($("div.collection-name a").get(0))
$("div.collection-name a").each.href( $("div.collection-name a").get(0).pathname.replace('.', '-') );
});

1 个答案:

答案 0 :(得分:1)

我还没有详细检查过你的所有逻辑,但考虑到默认replace只对第一次出现的角色进行检查。如果要替换all,则需要使用像这样的正则表达式

pathname.replace(/\./g, '-');

修改

更好地了解您的代码,这就是您需要通过&#39;替换点所需的内容 - &#39;

$("div.collection-name a").each(function(){
    var hrefArray = $(this).prop('href').split('/');
    for(var i = 3; i < hrefArray.length; i++) {
        hrefArray[i] = hrefArray[i].replace(/\./g, '-'); 
    }

    $(this).prop('href', hrefArray.join('/')); 
});

DEMO