Javascript jQuery单击滚动到cloest div.class并显示not working

Javascript jQuery单击滚动到cloest div.class并显示not working,javascript,jquery,Javascript,Jquery,嗨,有人知道我做错了什么吗 当你点击“显示内容”时,我想让它找到与我要求的类最接近的div,并滚动到它,但不起作用。。。我是jquery新手,所以可能我做错了,但我认为我的逻辑是正确的哈哈 在控制台中获取错误: 无法读取未定义的属性“top” 例如: $(文档).ready(函数(){ //举例说明 $(文档).on(“单击”,“显示语法”,函数(e){ var ele=$(this.parent().closest(“.render语法”); //这将在节中搜索 ele.show(); $(

嗨,有人知道我做错了什么吗

当你点击“显示内容”时,我想让它找到与我要求的类最接近的div,并滚动到它,但不起作用。。。我是jquery新手,所以可能我做错了,但我认为我的逻辑是正确的哈哈

在控制台中获取错误:

无法读取未定义的属性“top”

例如:

$(文档).ready(函数(){
//举例说明
$(文档).on(“单击”,“显示语法”,函数(e){
var ele=$(this.parent().closest(“.render语法”);
//这将在节中搜索
ele.show();
$(“html,body”).animate({
scrollTop:$(ele).offset().top
}, 100);
e、 预防默认值();
});
});
.render语法{
显示:无;
}

心满意足

心满意足

心满意足

不通过兄弟姐妹;做你需要的工作。只需将代码中最近的
替换为
next
,即可获得正确的行为

var ele = $(this).parent().next(".render-syntax");

否则
ele
将不包含任何元素,
ele.offset()
返回
null
,然后
top
属性
null
,因此出现错误。

问题不是ele.offset().top未定义,而是ele未定义

所以我打开了JS Fiddle,f****直到它工作,现在我可以给你这个:

$(文档).ready(函数(){
//举例说明
$(文档).on(“单击”,“显示语法”,函数(e){
var ele=$(this.parent().find(“.render语法”);
//这将在节中搜索
如果(元素css(“显示”)=“无”)
{
ele.show();
$(“html,body”).animate({
scrollTop:$(ele).offset().top
}, 100);
e、 预防默认值();
}否则
{
ele.hide();
e、 预防默认值();
}
});
});
.render语法{
显示:无;
}

心满意足

心满意足

心满意足


堆栈代码段编辑器和JSFIDLE中有一个
Tidy
按钮。在stackoverflow“运行此代码段”中不起作用,但在JS FIDLE上起作用。这里是链接:你把按钮移到了容器内,容器/内容在按钮所在的位置之外…我看不出有什么问题,但如果它会干扰你的设计或其他任何东西,你可以使用一个唯一的ID来切换,其他方式使用@Xufox解决方案…在其他方面,你知道我怎么能用一个按钮将pre>代码中的HTML复制到剪贴板吗?:)@詹姆斯不确定你指的是哪个
pre>code
。哦,对不起,我还有别的事,我在一个文档页面中有一个HTML示例,里面显示了HTML标记,我想知道是否很容易有一个按钮,当单击该按钮时,会将HTML示例复制到预编码中:)@James确实有帮助吗?我想我可以在文本区域中复制HTML并将其隐藏起来,以便用于复制。。。。看来这将是最快捷最简单的方法。我要去看戏。再次感谢你,伙计!