3

我正在查看其他人的代码库,而我是一个 javascript 菜鸟,而且我是一个正则表达式菜鸟,我无法弄清楚以下几行的作用:

var url = sel.anchorNode.parentNode.href;
var match = self.location.href.replace(/\/$/i, '');
var replaced = url.replace(match,'');

我把它读成:

  1. 将var url设置为当前选中节点的父节点的href值
  2. 将 var 设置为与浏览器当前 URL匹配,并删除尾随 '/'(如果存在)
  3. 将 var替换为 1. 中返回的字符串,并将 2. 中返回的字符串从中删除

如果我正确阅读它,我将无法弄清楚它会如何做任何事情。我能想到的任何情况下,当前选定节点的父节点都没有指向当前 URL 的 href 值。

所以我认为我读错了。

4

1 回答 1

5

因为href锚点的属性是一个完全解析的 URL(即使该href属性是相对的),它所做的就是删除当前页面的路径并让您返回到一个相对 URL。例如,在页面上:

http://example.com/foo/bar/

有一个像这样的链接

<a href="nifty.html">...</a>

...你href从锚得到的是:

http://example.com/foo/bar/nifty.html

...然后http://example.com/foo/bar从中删除,给你:

/nifty.html

当然,在这种情况下,这可能不是您真正想要的。:-) 我不得不承认我没有看到代码是如何有用的,脱离上下文,但有时上下文才是王道......

于 2013-05-12T16:28:35.177 回答