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