使用javascript/jquery按标题滚动到div

使用javascript/jquery按标题滚动到div,javascript,jquery,Javascript,Jquery,我试图滚动到一个由title属性的内容标识的div。我有几个具有以下结构的部门: <div class="placementWrapper"> <h3 class="placementName" title="above-content">above-content</h3> </div> 但是不起作用…知道为什么吗?要使用jQuery选择按标题的div,您需要此选择器: $("div[title=\"the-title\"]") 正如这

我试图滚动到一个由title属性的内容标识的div。我有几个具有以下结构的部门:

<div class="placementWrapper">
   <h3 class="placementName" title="above-content">above-content</h3>
</div>
但是不起作用…知道为什么吗?

要使用jQuery选择按标题的div,您需要此选择器:

$("div[title=\"the-title\"]")

正如这里所回答的:

您的代码中有几个错误:

您正在调用一个onclick函数,该函数只附加了一个事件处理程序。这意味着只有在第二次单击时,才会滚动并附加连续的处理程序。您只需要附加一个事件处理程序,并且可以在DOM加载时执行

根据您的结构,您需要通过单击的元素的内容而不是其title属性来搜索元素的标题

您正试图通过title属性选择ID为的元素,而您没有

现在,$'body'中的这个元素指的是body,而不是单击的元素

请注意,您可以动态执行所有这些附加操作,而不是复制文本

这将对您有用:

$(".toPlacement").on('click', function() {
   var titleText = $(this).text();
   $('body').animate({scrollTop: $(".placementName[title='" + titleText + "']").offset().top - 10}, "slow");
   return false;
});
从HTML中删除onclick

还可以看到关于这一点的演示

$("div[title=\"the-title\"]")
$(".toPlacement").on('click', function() {
   var titleText = $(this).text();
   $('body').animate({scrollTop: $(".placementName[title='" + titleText + "']").offset().top - 10}, "slow");
   return false;
});