在主页后找到并更改网址的一部分

时间:2014-09-23 22:35:54

标签: javascript jquery

Shopify正在将产品标签中的点切换为网址中的几乎所有位置。除了添加自定义过滤器时,它会使用点而不是破折号来拉取原始标记,这会在选择包含点的标记后进行过滤时生成404。

我想使用JQ在主网址之后找到并在网址中将点切换为破折号。 谷歌没有多大帮助。

所以,让我们说有一个ul

 <ul>
 <li><a href="http://www.whatever.com/something/tag.with></a></li>
 <ul>

如何在jq的帮助下找到“something / tag.with”?

P.S。 如果有人可以指出我如何将那个点改为破折号 - 我非常感激。但只是找到它也会有很大帮助。

谢谢!

编辑:

<div class="collection-name">
      <a href="/collections/wool/test.dot" title="Wool"><i class="check-icon"></i> Wool</a>
    </div>

还有这个jquery

$(document).ready(function(){
$("div.collection-name a").each(function(){
  this.href = this.href.replace('yarn/', '');
});
$("div.collection-name a").get(0).pathname.replace('.', '-');
})

我尝试添加另一个this.href = this.href.replace。没工作 图href仍然呈现为html://whatever.com等等,所以如上所述使用它。 所以,是的......这两个中的任何一个都没有工作

2 个答案:

答案 0 :(得分:1)

首先获取TML所说的值,然后使用正则表达式模式调用string.replace方法

var oldurl = $('ul&gt; li&gt; a')。get(0).pathname; var newurl = oldurl.replace(/./ i,“ - ”);

替换行也应该如下所示(尽管未经过测试)

var newurl = oldurl.replace('。',' - ');

答案 1 :(得分:0)

只需使用常规jQuery选择器查找所需的标记,在该选择器的结果上调用get(0),然后从返回的pathname获取属性element。例如,您在此处提供的HTML只有一个标记,因此选择它非常简单:

$('a').get(0).pathname

显然,在一个更复杂的文档中,jquery选择器会比$(&#39; a&#39;)更详细。

更改所有文字&#39;。&#39; (点)进入&#39; - &#39; (破折号),只需使用普通的JS string replacement

$("div.collection-name a").get(0).pathname.replace('.', '-')工作正常,您可以从此答案中嵌入的示例代码段中看到;进一步的帮助将要求您解释所提供的内容未能满足您的期望。

&#13;
&#13;
console.log($("div.collection-name a").get(0))

$("#found").text( $("div.collection-name a").get(0).pathname.replace('.', '-') );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <body>
      <div class="collection-name">
      <a href="/collections/wool/test.dot" title="Wool"><i class="check-icon"></i> Wool</a>
    </div>
      <div>Found the value: <div  id="found"></div></div>
    </body>
&#13;
&#13;
&#13;