Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使数据属性的行为类似于锚点_Javascript_Jquery_Html_Custom Data Attribute - Fatal编程技术网

Javascript 使数据属性的行为类似于锚点

Javascript 使数据属性的行为类似于锚点,javascript,jquery,html,custom-data-attribute,Javascript,Jquery,Html,Custom Data Attribute,有没有一种可行的方法使数据属性像锚一样工作 考虑以下可能的情况: 是否可能以某种方式将锚定标记绑定到具有相同命名数据属性的div 这不起作用,但有点像: $("#link").click(function(e) { var clickedLetter = $(this).attr('href'); $(this).attr("href", "#section[data-group='" + clickedLetter + "']") }); kawnah,在我看来,您需要获

有没有一种可行的方法使数据属性像锚一样工作

考虑以下可能的情况:

是否可能以某种方式将锚定标记绑定到具有相同命名数据属性的div

这不起作用,但有点像:

$("#link").click(function(e) {
    var clickedLetter = $(this).attr('href');
    $(this).attr("href", "#section[data-group='" + clickedLetter + "']")
});

kawnah,在我看来,您需要获得单击元素的href

var clicked = $(this).attr('href');
之后,您可以使用replace函数和get href而不使用hashtag符号(#)

最后一个你应该做的是给这个数据部分的元素设置动画

var elementScrolledTo = $('*[data-section="' + myAttr + '"]');

$('html, body').animate({
                scrollTop: elementScrolledTo.offset().top
            }, 2000);
当然,这是jquery on事件的处理函数。

有什么特别的原因让你不能在
div
上使用
id
吗?@FedericoklezCulloca它是从数据库中动态生成的标记,我现在无法更改,我很好奇这样的东西是否可以一起被破解。我不太理解你的示例代码。您是否希望跳转到
数据部分标记的部分,就像锚定标记一样?总体回答非常好!我不得不稍微改变它——执行
var myAttr=replace(“#”,单击)
正在返回
##home
并导致并返回动画中未定义的内容,因此我需要执行
var myAttr=replace('#','')现在它工作得很好。
var elementScrolledTo = $('*[data-section="' + myAttr + '"]');

$('html, body').animate({
                scrollTop: elementScrolledTo.offset().top
            }, 2000);