javascript - jQuery 干净的方法来获取 href 数组并重建它

标签 javascript jquery

我仍在学习,虽然我的方法有效,但我不认为它很优雅并且可以改进。基本上我们有一个我无法控制输出的系统,所以我使用以下代码获取 anchor 的 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 + "/");

任何关于如何使这个更清洁/更高效的建议 - 以及我是否立即着手解决问题都将不胜感激。

最佳答案

另一种方法是使用正则表达式来稍微缩短代码:

var link =  $(".shop-return");
var linkUrl = link.attr("href").match(/\/([_a-z]+)\/([a-z]+)\//);

link.attr('href', linkUrl[0]);

这使用正则表达式匹配。 linkUrl[0]包含前缀和后缀斜杠'/'的url,linkUrl[1]是第一个url部分,linkUrl[2] 第二个

正则表达式中的方括号选择“匹配项”是什么,因此:link.attr("href").match(/\/([_a-z]+)\/([a-z]+ )\//);

返回 ["/_shop/category/", "_shop", "category"]

关于javascript - jQuery 干净的方法来获取 href 数组并重建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986703/

相关文章:

javascript - jQuery:固定顶部菜单,如 Facebook 和 Twitter

javascript - 在一个元素上添加两次相同的类

javascript - 设置 select2 输入的默认值

javascript - 单击时切换文本内容。出于某种原因需要点击 2 次?

javascript - 错误: Uncaught SyntaxError: Unexpected token

JavaScript 无法访问我的查询 API

javascript - 提交表单时出现类型错误

javascript - 如何在 Javascript 中禁用 RadioButtonList 中的某个单选按钮

javascript - 从子级 html 访问 <object> 父级

javascript - jQuery 表,可点击下拉列表 - 多个隐藏行?