我仍然在学习,虽然我的方法有效,但我不相信它是优雅的,可以改进。基本上,我们有一个无法控制输出的系统,所以我使用下面的代码获取锚点的href并将其操作到正确的位置。
<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 + "/");任何建议,如何使这更清洁/更有效率-如果我已经做过的事情,在立即或没有,将不胜感激。
发布于 2015-01-16 15:06:52
另一种方法是使用正则表达式将代码缩短一点:
var link = $(".shop-return");
var linkUrl = link.attr("href").match(/\/([_a-z]+)\/([a-z]+)\//);
link.attr('href', linkUrl[0]);这使用regEx匹配。linkUrl[0]包含前缀和后缀斜杠'/‘on的url,linkUrl[1]是第一个url部分,linkUrl[2]是第二个
正则表达式中的括号选择“匹配”是什么,所以:link.attr("href").match(/\/([_a-z]+)\/([a-z]+)\//);
返回["/_shop/category/", "_shop", "category"]
https://stackoverflow.com/questions/27986703
复制相似问题