Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个标准的方法来;请参阅第页的“;在jQuery中(理想情况下没有插件)_Jquery - Fatal编程技术网

是否有一个标准的方法来;请参阅第页的“;在jQuery中(理想情况下没有插件)

是否有一个标准的方法来;请参阅第页的“;在jQuery中(理想情况下没有插件),jquery,Jquery,我想在页面上提供一个搜索字段,模拟浏览器的“在页面中查找”功能。假设我们不能调用浏览器自己的功能(window.find()似乎是非标准的),我希望代码能够搜索、突出显示匹配、提供下一个/上一个匹配,等等 我找不到可用的代码,也找不到jQuery插件。看看:contains和:visible选择器。 比如: function findInPage(q) { var $target = $(':visible:contains("'+q+'")') while( $ta

我想在页面上提供一个搜索字段,模拟浏览器的“在页面中查找”功能。假设我们不能调用浏览器自己的功能(window.find()似乎是非标准的),我希望代码能够搜索、突出显示匹配、提供下一个/上一个匹配,等等


我找不到可用的代码,也找不到jQuery插件。

看看
:contains
:visible
选择器。 比如:

function findInPage(q) {
  var $target = $(':visible:contains("'+q+'")')
  while( $target.length ) {
    $target = $target.children(':contains("'+q+'")');
  }
  return $target.end();
}
或者,您可以使用


为什么不使用浏览器搜索功能,让计算机文化程度低的用户可以访问,因为他们可能不知道浏览器的查找功能。该网站处理文学文本,搜索功能特别有用,因此我想确保它最大限度地被发现。为什么不在ctrl+f的图片旁边放一个大的“按下ctrl+f进行搜索”或者甚至一个大的放大镜呢。我并没有试图控制,但我刚刚发现,一般来说,重新实现内置浏览器功能不是一个好主意;浏览器al.ost总是做得更好,因为它在视觉上远没有那么优雅。我同意你的观点,也不打算重新实现浏览器的功能——事实上,如果有一种方法可以用可点击的按钮而不是按键组合来触发它,那对我来说就足够了。很显然,window.find()曾经这样做,但它是非标准的,显然不再受支持。谢谢!如果我最终不得不自己实现它,那将非常有帮助。我正在寻找已经做好高亮显示、匹配之间跳过等准备的代码。使用Mark.js插件更新了答案,这可能符合您的需要。哦,太好了,谢谢!这个演示正是我需要的: