Javascript 仅使用文本滚动至div-Wordpress

Javascript 仅使用文本滚动至div-Wordpress,javascript,jquery,html,wordpress,Javascript,Jquery,Html,Wordpress,我有一个div列表,我从包含唯一文本的插件中获得。我有一个可点击的地图,当点击某些部分时,会在页面上搜索文本,如果找到,应该滚动到它。代码将直接嵌入WordPress管理编辑页面部分。我尝试使用:contains(string)查找字符串 $(“div:contains('text')”) 但我不知道如何滚动到它。返回的多个div都具有相同的类名且没有id,因此我无法单独访问它们。任何帮助或提示都将不胜感激。其他人可能知道可以直接滚动到一段文本的方法,但一般来说,当您编写javascript以滚

我有一个div列表,我从包含唯一文本的插件中获得。我有一个可点击的地图,当点击某些部分时,会在页面上搜索文本,如果找到,应该滚动到它。代码将直接嵌入WordPress管理编辑页面部分。我尝试使用:contains(string)查找字符串

$(“div:contains('text')”)


但我不知道如何滚动到它。返回的多个div都具有相同的类名且没有id,因此我无法单独访问它们。任何帮助或提示都将不胜感激。

其他人可能知道可以直接滚动到一段文本的方法,但一般来说,当您编写javascript以滚动到文档中的某个内容时,它是基于容器的offsetTop属性滚动的。如果在同一个div中没有两段唯一的文本,那么您需要使用一些正则表达式(我对此不是很熟悉)来定位包含该字符串的第一个开始和结束标记。然后,需要获取这些标记的ID,并使用该ID查找divs offsetTop属性。这可能会变得越来越复杂,这取决于您的唯一文本是否直接位于您滚动到的容器中


另一个解决方案是,我在发布本文后不久才意识到,您可以迭代匹配模式的每个元素。如果您知道您的唯一文本将始终位于类为“unique”的div中,并且在该div中永远不会有两段匹配的文本,那么您可以使用for循环遍历类为“unique”的所有div,并检查字符串是否存在。

当您找到它所在的元素时,可以使用以下命令滚动到它:

function findPos(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    return [curtop];
    }
}

OP提到,就您的评论问题而言,没有ID,您可以随时访问元站点(可能是首选),并在那里询问您给出的答案类型是否可以接受)请向我们提供一些代码或JSFIDLE