返回href减去字符串

时间:2013-12-28 23:14:44

标签: jquery string hash replace

现在我得到了这个脚本,它将?category添加到元素中的所有链接。问题是我有一个注释按钮,返回一个像这个“http://example.com/post2#respond”的网址,这意味着我的脚本将返回“http://example.com/post2#respond?category”。这是一个问题,因为我正在使用PHP进行查询,#后面的所有内容都不会被服务器解析。

这是代码:

<script type="text/javascript">
jQuery(function ($) {
    $(".comments-link a").attr("href", function(i, href) {  return href + "?category";   });
});

我想做点什么

return href.replace(/#respond/gi") + "?category" + "#respond"

所以它最终会http://example.com/post2?category#respond

编辑:我设法用href.replace删除'response',但没有删除#标签

3 个答案:

答案 0 :(得分:0)

href.replace有效。搞砸了语法。

$(".comments-link a").attr("href", function(i, href) {  return href.replace(/#respond/gi, '') + "?category" + "#respond" ;   });

答案 1 :(得分:0)


Demo JS Fiddle Diddle


$(document).ready(function () {
    $('.comments-link a').attr('href', function (i, href) {
        return href.substring(0, href.indexOf('?category'));
    });
});

答案 2 :(得分:0)

链接具有一些属性(主机名,协议,路径名等),等于location - 对象,根据这些属性构建href,例如:

$(".comments-link a")
  .attr("href", function() {  return [this.protocol,
                                      '//',
                                      this.hostname,
                                      '/',
                                      this.pathname,
                                      '?category'].join('') ;   });