使用jquery设置href属性

时间:2013-06-13 16:54:28

标签: jquery ruby-on-rails href

这是我的代码:
(注意:我正在使用Purl(https://github.com/allmarkedup/purl))

$("#major").click(function() {
        $(".questions, .sections, #major_list").hide();
        $(".subnav_item:not(#major)").css("font-style", "normal");
        $("#major").css("font-style", "italic");
        $(".subnav_item:not(#major)").css("color", "black");
        $("#major").css("color", "#6666FF");
        $("#major_list").show();
        var a = 0;
        original_link = [];
        $(".major_question").each(function() {
            original_link[a] = $(this).attr("href");
            a++;
        });
    });
        $("#major_list li").click(function() {
            $("#major_sub").text($(this).text());
            $("#major_nav .questions").hide();
            $("#major_nav .questions").show("fast");
            major = $(this).text();
            major = major.toLowerCase();
            major = major.replace(" ", "-");
            var i = 0;
            $(".major_question").each(function() {
                link = original_link[i];
                i++;
                link = url.attr('host') + "/" + url.segment(1) + "/academics/" + major + "/" + link;
                alert(link);
                $(this).attr("href", link);
            });
        });

说我在http://localhost:3000/university-of-pittsburgh/academics/classes/do-kids-participate-in-class页面上。当我提醒(链接)...正确的链接被警告!但是,当我点击该链接时,它会向我提供正确的链接,前面是... http://localhost:3000/university-of-pittsburgh/academics/classes

  1. 为什么这个呢?
  2. 我该如何纠正?

2 个答案:

答案 0 :(得分:4)

您需要link作为完整的网址,从http://...开始(或至少//...)。

你给它的东西看起来像是一个相对的链接。

答案 1 :(得分:2)

在链接前放置一个正斜杠“//”,否则它们将变为相对于当前页面。例如:

link = url.attr('host') + "/" + url.segment(1) + "/academics/" + major + "/" + link;

会变成

link = '//' + url.attr('host') + "/" + url.segment(1) + "/academics/" + major + "/" + link;