我还在学习,虽然我的方法有效,但我不相信它很优雅,可以改进。基本上我们有一个系统,我无法控制输出,所以我使用以下代码获取锚点的href
并操纵它指向正确的位置。
HTML
<a class="shop-return" href="/_shop/category/prodect/">Link</a>
的jQuery
//set url object
var link = $(".shop-return");
//get url objects href value + split it into parts
var linkUrl = link.attr("href").split("/");
/*remove the starting blank space and the ending
product part of url*/
linkUrl.splice(-2,2)
linkUrl.shift();
//build new link
var newLinkUrl = linkUrl.join("/");
//set new link on object
link.attr('href', "/" + newLinkUrl + "/");
关于如何使这个更清洁/更有效的任何建议 - 如果我已经在正确的事情或其他事情,将不胜感激。
答案 0 :(得分:2)
另一种方法是使用正则表达式来缩短代码:
var link = $(".shop-return");
var linkUrl = link.attr("href").match(/\/([_a-z]+)\/([a-z]+)\//);
link.attr('href', linkUrl[0]);
这使用regEx匹配。 linkUrl[0]
包含带有前缀和后缀斜杠'/'的网址,linkUrl[1]
是第一个网址部分,linkUrl[2]
是第二个
正则表达式中的括号选择“匹配”的内容,因此:link.attr("href").match(/\/([_a-z]+)\/([a-z]+)\//);
返回["/_shop/category/", "_shop", "category"]