在javascript中设置名称属性时,smoothscroll不起作用
当我使用smoothscroll插件以名称属性为目标时,smoothscroll不工作,但如果我以id属性为目标,smoothscroll工作正常。获取以下控制台错误,请建议如何解决在javascript中设置名称属性时,smoothscroll不起作用,javascript,jquery,Javascript,Jquery,当我使用smoothscroll插件以名称属性为目标时,smoothscroll不工作,但如果我以id属性为目标,smoothscroll工作正常。获取以下控制台错误,请建议如何解决 $(document).ready(function() { var class1 = $("[class^='test']"); $('class1').on('click', function (event) { var scrollStatus = $(this).attr('data
$(document).ready(function() {
var class1 = $("[class^='test']");
$('class1').on('click', function (event) {
var scrollStatus = $(this).attr('data-smooth-scroll');
if(scrollStatus !== 'false' && scrollStatus !== undefined) {
var actualHrefValue = $(this).attr("href");
var actualNameValue = $('[name="' + actualHrefValue.substr(1) + '"]');
if(actualHrefValue.charAt(0) === "#") {
if(actualHrefValue !== '#' && actualHrefValue !== null) {
event.preventDefault();
document.querySelector(actualNameValue).scrollIntoView({behavior: 'smooth', block: "start" });
}
}
}
});
});
错误:
HTML:
您正在使用
document.querySelector(actualNameValue)
其中actualNameValue已经是一个元素
var actualNameValue = $('[name="' + actualHrefValue.substr(1) + '"]');
试一试
而不是
document.querySelector(actualNameValue).scrollIntoView({behavior: 'smooth', block: "start" });
我相信你忘了发布控制台错误。我所看到的只是代码示例。@Martin,添加了控制台错误您也可以添加目标元素吗?只是为了得到一个更全面的想法。尝试将您打算使用的值记录在控制台日志中,我怀疑您可能只是在那里出错,而实际上没有引用任何内容null@Snsa90,问题是选择器:[name=link]在query.selector中不工作
actualNameValue.scrollIntoView({behavior: 'smooth', block: "start" });
document.querySelector(actualNameValue).scrollIntoView({behavior: 'smooth', block: "start" });