0

我在下面有这段代码,它指的是通常只是“#programs”之类的同页链接的href。但是,我现在需要一些链接来引用其他页面,例如“/index.html#programs”。所以我的问题是,如何将下面代码中的“href”编辑为数字符号及其后面的所有内容?谢谢你。

    var lastId, topMenu = $("#main-menu"),
topMenuHeight = topMenu.outerHeight() + 500;
menuItems = topMenu.find('a');

    scrollItems = menuItems.map(function () {

        content = $(this).attr("href");

        if(content){
            var checkURL = content.match(/^#([^\/]+)$/i);

            if(checkURL){

                var item = $($(this).attr("href"));
                if (item.length) return item

            }
        }
    });
4

3 回答 3

1

你可以给出这样的新路径:

var path = "ur_new_location";
$("#link1").attr('href',path);
于 2013-11-01T04:22:04.387 回答
0

如果是我,我会忘记替换所有文件名并使用hash property锚标签来获得你想要的

将您的过滤器替换为:

.filter(function(){
  return this.hash==='#' +id;
});

简单的演示

于 2013-11-01T05:13:10.260 回答
0
var item = "/index.html#programs";
var afterHash = item.substr(item.indexOf("#"))

//这里的技巧是 indexOf 和 substr 方法

var lastId, topMenu = $("#main-menu"),
topMenuHeight = topMenu.outerHeight() + 500;
menuItems = topMenu.find('a');

    scrollItems = menuItems.map(function () {

        content = $(this).attr("href");

        if(content){
            var checkURL = content.match(/^#([^\/]+)$/i);

            if(checkURL){

                var item = $($(this).attr("href"));
                item = item.substr(item.indexOf("#"))
                if (item.length) return item

            }
        }
    });
于 2013-11-01T04:26:49.510 回答