- 浏览: 268432 次
- 性别:
- 来自: 北京
最新评论
-
haixin3036:
jQuery是一套跨浏览器的JavaScript库,简化HTM ...
jquery sizzle 选择器浅析 -
panshunchang:
非常感谢分享,正找这东西呢。
基于jQuery的QQ表情插件 -
yuur369:
不错。。。
移动端webapp开发必备知识
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<style>
.highlight{ background-color:#ff0; color:#000;}
</style>
我是无辜的关键词,躺着不中枪
<hr>
<div id="content"> 用JS让文章内容指定的关键字加亮
是这样的.. <a href="#">现在有这些关键字:美容,生活,购物</a> 当在文章里头出现这些关键字,就把它加亮显示..
文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...
不知道怎样来实现这样的功能啊?特此求助 </div>
<script type="text/javascript">
/*----------------------------------------*
* 参数说明:
* obj: 对象, 要进行高亮显示的html标签节点.
* hlWords: 字符串, 要进行高亮的关键词词, 使用 竖杠(|)或空格 分隔多个词 .
* cssClass: 字符串, 定义关键词突出显示风格的css伪类.
* 参考资料: javascript HTML DOM 高亮显示页面特定字词
\*----------------------------------------*/
function MarkHighLight(obj, hlWords, cssClass) {
hlWords = AnalyzeHighLightWords(hlWords);
if (obj == null || hlWords.length == 0) return;
if (cssClass == null) cssClass = "highlight";
MarkHighLightCore(obj, hlWords);
//------------执行高亮标记的核心方法----------------------------
function MarkHighLightCore(obj, keyWords) {
var re = new RegExp(keyWords, "i");
for (var i = 0; i < obj.childNodes.length; i++) {
var childObj = obj.childNodes[i];
if (childObj.nodeType == 3) {
if (childObj.data.search(re) == -1) continue;
var reResult = new RegExp("(" + keyWords + ")", "gi");
var objResult = document.createElement("span");
objResult.innerHTML = childObj.data.replace(reResult, "<span class='" + cssClass + "'>$1</span>");
if (childObj.data == objResult.childNodes[0].innerHTML) continue;
obj.replaceChild(objResult, childObj);
} else if (childObj.nodeType == 1) {
MarkHighLightCore(childObj, keyWords);
}
}
}
//----------分析关键词----------------------
function AnalyzeHighLightWords(hlWords) {
if (hlWords == null) return "";
hlWords = hlWords.replace(/\s+/g, "|").replace(/\|+/g, "|");
hlWords = hlWords.replace(/(^\|*)|(\|*$)/g, "");
if (hlWords.length == 0) return "";
var wordsArr = hlWords.split("|");
if (wordsArr.length > 1) {
var resultArr = BubbleSort(wordsArr);
var result = "";
for (var i = 0; i < resultArr.length; i++) {
result = result + "|" + resultArr[i];
}
return result.replace(/(^\|*)|(\|*$)/g, "");
} else {
return hlWords;
}
}
//-----利用冒泡排序法把长的关键词放前面-----
function BubbleSort(arr) {
var temp, exchange;
for (var i = 0; i < arr.length; i++) {
exchange = false;
for (var j = arr.length - 2; j >= i; j--) {
if ((arr[j + 1].length) > (arr[j]).length) {
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
exchange = true;
}
}
if (!exchange) break;
}
return arr;
}
}
//----------------end------------------------
var divObj = document.getElementById("content");
MarkHighLight(divObj, '文章|关键|功能');
</script>
</body>
</html>
发表评论
-
CSS团队协作开发方式的思考
2014-05-29 10:59 794有效的团队协作开发, ... -
Javascript类定义语法,私有成员、受保护成员、静态成员等
2014-05-29 10:59 762JS只是一门支持面向对象编程的语言,通过OO可以让我们的 ... -
Javascript 继承模式
2014-05-29 10:59 749在面向对象的JavaScript开发中使用继承可以提高代码 ... -
用JavaScript实现自己的DOM选择器
2014-05-28 14:27 716解释器模式(Interpreter):定义一种语法格式,通过 ... -
Javsript代码的注释和模块定义
2014-05-28 14:21 875可以这样定义模块: (function(ns, re ... -
在JavaScript中应用单例模式管理命名空间
2014-05-28 10:56 831单例模式确保一个类在整个应用程序中只有一个是实例对象,在J ... -
移动WEB开发中媒体查询里的width, device-width, resolution
2014-05-28 10:14 1033/*1、width: viewport的宽度,css像素,三星 ... -
前端性能优化
2014-05-27 15:16 9161. 请减少HTTP请求 基本原理: ... -
jquery sizzle 选择器浅析
2014-05-26 14:23 1253看了jquery的源码,jquery用的选择器的引擎是siz ... -
jQuery 1.8,1.9和2.0分别带来的新特性
2014-05-26 14:17 1376jQuery 1.8 可定制 在jQuery ... -
jquery点击div之外的地方div本身消失
2014-05-15 12:22 917<!DOCTYPE html PUBLIC " ... -
jquery-migrate: 迁移旧的jQuery代码至jQuery1.9以上的版本
2014-05-14 16:31 708这个插件可以用来检测和恢复在jQuery1.9版本中已删除或 ... -
移动WEB在线开发工具 – Codiqa
2014-05-12 15:43 678Codiqa,https://codiqa.com 简单试用 ... -
一种比CSS-Sprite更加方便在网页中嵌入大量图标的方法
2014-05-12 15:34 631这种思路是在一个国外的网站上发现的,设计者在网站中使用了很多 ... -
Google Developers的ResetCSS
2014-05-12 10:32 642@charset "utf-8"; ht ... -
Android手机版浏览器DIV滚动条失效解决方案
2014-05-08 11:09 1318除了BODY和HTML的滚动条,在触屏下几乎所有浏览器都不支 ... -
解耦HTML、CSS和JavaScript
2014-02-14 11:32 661当前在互联网上, ... -
设置双核浏览器的浏览模式
2014-01-20 15:44 700如果访问的页面中有 CSS3 代码,双核浏览器会自动切换到 ... -
使用console.table()调试javascript
2014-01-20 15:42 652或许你已经习惯了console.log()来调试js,非常好 ... -
iOS下无法正常渲染按钮的问题
2014-01-20 15:40 699最近做移动端的页面,碰到了一个问题,就是css无法定义按钮样 ...
相关推荐
8. **正则表达式**:在某些情况下,利用正则表达式可以方便地实现复杂的关键字匹配和替换,例如同时高亮多个关键词,或者忽略大小写。 9. **可扩展性**:良好的高亮标记源码应该具有高度的可扩展性,能够适应不同的...
同时,HTML文档中还可能包含一个或多个段落或元素,这些元素中的文本将被用来进行关键词匹配和高亮。 接着,`js`文件夹中的JavaScript代码是整个功能的核心。在jQuery中,我们通常会使用`$(document).ready()`来...
在本文中,我们将探讨如何基于Vue.js框架实现一个实时搜索功能,并且在搜索结果显示时高亮显示关键词。这个功能在很多应用中都很常见,比如搜索引擎、聊天应用或者任何需要即时反馈用户输入的应用。 首先,实时搜索...
在网页开发中,jQuery 是一个非常流行的 JavaScript 库,它简化了 DOM 操作、事件处理、动画效果以及异步通信等多个方面的工作。标题提到的"jquery实时高亮显示网页上用户搜索关键词"是一项常见的功能,它能提升用户...
以上是关于"搜索首字为高亮"的相关知识点,涵盖了从用户输入到结果展示的全过程,涉及了字符串匹配、DOM操作、CSS样式、性能优化等多个方面。在实际开发中,还需要根据具体的应用场景和用户需求进行适当的调整和扩展...
在本篇文章中,将详细探讨如何通过jQuery插件highlight来实现该功能,特别适用于中文多词搜索的场景。 首先,介绍jQuery插件highlight的核心功能和使用方法。该插件能够对指定页面内容中的关键词进行高亮显示。它...
**JavaScript高亮方法的实现**:通过编写一个名为`fHl`的函数,它接受四个参数:`o`表示要进行高亮显示的对象,`flag`是要高亮的关键词或多个关键词(多个关键词之间使用竖杠`|`分隔),`rndColor`是一个布尔值表示...
关键字高亮是指在文本展示时,将用户输入的搜索词或者特定词汇用特殊颜色、样式(如加粗、斜体)进行突出显示,使得这些关键字在一大段文本中更加醒目。这在搜索结果展示、代码编辑器、富文本处理等场景中都非常常见...
在JavaScript(JS)编程中,实现关键字搜索高亮显示是一项常见的需求,特别是在开发网页搜索功能或者富文本编辑器时。这个主题涉及到字符串处理、正则表达式和DOM操作等多个方面。下面将详细介绍如何使用JavaScript...
1. **关键词高亮**:组件接收一个大的文本字符串和一个或多个要高亮的单词列表。它会遍历文本,找到所有匹配的单词,并用特定的样式(如背景色、边框等)进行高亮显示。 2. **可定制化**:开发者可以根据自己的需求...
- 使用 `JavaScript` 对搜索结果进行动态处理,遍历每个结果,查找关键词并应用高亮样式。 - 如果使用了框架如 React 或 Vue,可以在组件渲染后处理搜索结果。 - **正则表达式匹配**: - `JavaScript` 的 `...
在百度等搜索引擎中,这个功能可以帮助用户快速定位到搜索词所在的句子或段落。 文章给出的代码示例是如何通过JQuery和JavaScript实现上述功能的。代码中涉及到的知识点主要包括: 1. JavaScript的基本语法,如...
在JavaScript编程中,高亮显示文本输入框是一个常见的需求,特别是在开发富文本编辑器、代码编辑器或搜索功能时。这个“Js高亮显示文本输入框.rar”压缩包可能包含了实现这一功能的相关代码和资源。下面我们将深入...
这个“划词搜索代码js好用版”是针对JavaScript编程语言实现的一种高效、兼容多种浏览器的划词搜索解决方案。下面我们将深入探讨这个代码的核心原理、实现方法以及它如何兼容不同浏览器。 1. **核心原理**: 划词...
例如,我们可以创建一个包含多个条目的列表: ```html 条目1 条目2 条目3 <!-- 更多条目 --> 搜索内容..."> ``` 二、JavaScript事件监听 接下来,我们需要监听用户的输入。通过在搜索框(`#searchInput`)...
在 Angular 中,实现搜索关键字高亮是一项常见的需求,尤其在用户输入搜索词后,需要在搜索结果中突出显示匹配的文本。本文将详细介绍如何在 Angular 中通过自定义过滤器来实现这一功能。 首先,了解 Angular 的...
综上所述,这个基于Vue+SpringBoot的博客系统融合了现代Web开发的多个关键技术,提供了便捷的写作体验和高效的搜索功能,是一个典型的前后端分离项目实例。通过学习和实践这样的系统,开发者可以提升在Web开发领域的...
2. **可配置性**:插件提供多种配置选项,如自定义高亮样式(颜色、背景色等)、忽略大小写、跨多个元素匹配等,以满足不同项目的需求。 3. **性能优化**:在处理大量文本时,插件通过高效的算法确保性能不受到影响...
可以添加一个清除按钮,当用户输入内容后显示,允许用户快速清除搜索词。同时,搜索框周围可以加上合适的背景色或边框,以区分其他页面元素。 2. **实时搜索功能**:通过监听`bindinput`事件,我们可以在用户输入时...