我有这些超链接,它会跳转到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有一种跳转到特定选择器的方法,对吧?让我知道。
由于
答案 0 :(得分:1)
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”。