克隆后跳转到锚标签

时间:2009-11-11 09:08:50

标签: javascript jquery html css

我有这些超链接,它会跳转到UL中的锚标签

<a href="#A">A</a>
<a href="#B">A</a>
<a href="#C">A</a>

<ul>
<li><a name="A"></a></li>
<li><a name="B"></a></li>
<li><a name="C"></a></li>
</ul>

这是为了确保我跳到列表中的右侧字母(长而且会有滚动条)。我遇到的问题是,当文件准备就绪时这是克隆(网站的要求不同 - 不能在这里改变)。因此,在克隆之后,有两组锚标记执行相同的操作。我可以更改克隆的ID而不是内部的ID。我想要的结果是,当点击A或B或C时,它将在新克隆中跳转

如何解决这个问题?如果有办法避免使用这些锚标签,那也没关系。我认为jQuery有一种跳转到特定选择器的方法,对吧?让我知道。

由于

3 个答案:

答案 0 :(得分:1)

jQuery ScrollTo插件可以解决您的问题。

jQuery.ScrollTo

相关:JQuery focus

或者您可以添加此脚本:

clone.find("a[href^=#]").each(function() {
    var anchor = $(this);
    var name = anchor.attr("href");
    anchor.attr("href", name + "_1");
    clone.find("a[name=" + name.substring(1) + "]").attr("name", name.substring(1) + "_1");
});

答案 1 :(得分:0)

在创建克隆的同一函数中,还要从原始的LI元素中删除 name 属性。

答案 2 :(得分:0)

您可以动态更改克隆元素的name属性:

$(function() {
    names = ['A', 'B', 'C'];

    $.each(names, function(i, name) {
        $("[name='" + name + "']")[1].name = name + "2";
    });
});

然后你可以跳转到“#A2”。