我想知道是否可以将 HTML 对象的属性值设置为包含#字符的字符串?
我想这样做的原因是页面会有很多项目应该滚动页面到指定的元素,我想存储数据'它应该滚动到哪个项目?' 作为数据滚动属性。
所以我的 JavaScript 代码 - 将 - 看起来像这样:
function ScrollToElement(lm)
{
    var theTop  = lm.offset().top;
    $("html,body").animate({
        scrollTop: theTop/*,
        scrollLeft: 1000*/
    });
}
// .. and add click event to all such objects : 
$('.scroller').click(function(){
        var theSelector = $(this).attr('data-scrollto');
        ScrollToElement($(theSelector));
    });
所以 html 元素看起来像:
<a class='scroller' data-scrollto='p#p-to-scroll'>Click to scroll to p</a>
安全吗?
作为一个附带问题,为什么
$(element).data('scrollto');
不工作,但
$(element).attr('data-scrollto'); 
有效吗?